上面的代码位于一个表单中。当我加载表单时,它会从数-6ren">
gpt4 book ai didi

php mysql输入仅将零保存到db

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:24 25 4
gpt4 key购买 nike

<div class="control-group invoice-properties">
<label class="control-label"><?php echo lang('quote_type'); ?></label>
<div class="controls">
<input type="text" id="quote_type" class="input-small" value="<?php echo $quote->quote_type; ?>" style="margin: 0px;">
</div>
</div>

上面的代码位于一个表单中。当我加载表单时,它会从数据库中检索值。因此,当我直接在数据库中输入一个数字时,它会检索到这个数字。但是当我保存它时,它总是保存一个零。当我输入 8 时,它会变成 0(零)。

任何人都知道这是为什么。提前致谢。

下面是执行保存/检索的代码,至少我认为是这样。

public function save() {
$this->load->model('quotes/mdl_quote_items');
$this->load->model('quotes/mdl_quotes');
$this->load->model('item_lookups/mdl_item_lookups');

$quote_id = $this->input->post('quote_id');

$this->mdl_quotes->set_id($quote_id);

if ($this->mdl_quotes->run_validation('validation_rules_save_quote')) {
$items = json_decode($this->input->post('items'));

foreach ($items as $item) {
if ($item->item_name) {
$item->item_quantity = standardize_amount($item->item_quantity);
$item->item_price = standardize_amount($item->item_price);

$item_id = ($item->item_id) ? : NULL;

$save_item_as_lookup = (isset($item->save_item_as_lookup)) ? $item->save_item_as_lookup : 0;

unset($item->item_id, $item->save_item_as_lookup);

$this->mdl_quote_items->save($quote_id, $item_id, $item);

if ($save_item_as_lookup) {
$db_array = array(
'item_name' => $item->item_name,
'item_description' => $item->item_description,
'item_price' => $item->item_price
);

$this->mdl_item_lookups->save(NULL, $db_array);
}
}
}

$db_array = array(
'quote_number' => $this->input->post('quote_number'),
'quote_type' => $this->input->post('quote_type'),
'quote_date_created' => date_to_mysql($this->input->post('quote_date_created')),
'quote_date_expires' => date_to_mysql($this->input->post('quote_date_expires')),
'quote_status_id' => $this->input->post('quote_status_id')
);

$this->mdl_quotes->save($quote_id, $db_array);

$response = array(
'success' => 1
);
} else {
$this->load->helper('json_error');
$response = array(
'success' => 0,
'validation_errors' => json_errors()
);
}

if ($this->input->post('custom')) {
$db_array = array();

foreach ($this->input->post('custom') as $custom) {
// I hate myself for this...
$db_array[str_replace(']', '', str_replace('custom[', '', $custom['name']))] = $custom['value'];
}

$this->load->model('custom_fields/mdl_quote_custom');
$this->mdl_quote_custom->save_custom($quote_id, $db_array);
}

echo json_encode($response);
}

编辑 1

最后的评论和答案指出名称字段不可见。我已将与此对应的所有文件上传到 http://websiterheine.eu/quotes.zip

当您查看 views/view.php 时,任何输入都没有名称字段。但是除了我提出问题的输入之外,所有输入都正常工作。

请查看 .zip。

编辑2

正如 Patrick 所指出的那样,.zip 无法保存。所以没有人会下载。因此,我将在 JSFIDDLE 上发布文件。 fiddle 不会工作,因为我只将它用作文件的占位符。

**views/view.php**

http://jsfiddle.net/ty9f7y9u/

**models/mdl_quotes.php**

http://jsfiddle.net/4vngkegm/1/

**controllers/ajax.php**

http://jsfiddle.net/forv452m/1/

**controllers/quotes.php**

http://jsfiddle.net/1gjc3q6n/

编辑3

我刚刚又看了一遍。任何文件中都没有 $_POST.所以很奇怪它正在保存所有表单值。

我从来没有遇到过像这样没有名称属性和 $_POST 值的表单。这个表单是如何保存和加载的,具体在哪里???

最佳答案

这是因为您的输入标签中缺少 name 属性

<input type="text" id="quote_type" class="input-small" value="<?php echo $quote->quote_type; ?>" style="margin: 0px;">

将此更改为

<input type="text" id="quote_type" name="quote_id" class="input-small" value="<?php echo $quote->quote_type; ?>" style="margin: 0px;">

附言内联 CSS 的使用不是很好

关于php mysql输入仅将零保存到db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com