如何修复我的表单没有将数据更新到数据库 [Codeigniter]
Posted
技术标签:
【中文标题】如何修复我的表单没有将数据更新到数据库 [Codeigniter]【英文标题】:How to Fix My Form Didn't Update Data to Database [Codeigniter] 【发布时间】:2020-03-23 20:00:09 【问题描述】:我的表单有问题。当我输入表格并提交时,表格没有保存到我的数据库中。 在我的表格中显示代码交易和电子邮件客户。如果客户在我的网站上购买产品。 我只是通过点击表单代码交易确认订单。
在表单代码交易显示,代码交易和电子邮件客户。我输入物流名称,没有。物流订单到客户跟踪他们的订单,以及订单包发送的选择。
但在我的问题中,表单成功保存了订单包信息“已发送”,但对于物流名称和编号。物流订单没有保存。
这是我的看法。
<div id="<?php echo $row['codetrans'] ?>" class="reveal-modal">
<h3>Detail Order</h3>
<?php echo form_open('order/edit_stats_order');
$codetrans = array(
'name' => 'codetrans',
'class' => 'column',
'size' => '30'
);
$email = array(
'name' => 'email',
'class' => 'column',
'size' => '30'
);
$no_order = array(
'name' => 'no_order',
'class' => 'column',
'size' => '30'
);
$log = array(
'FedEx' => 'FedEx',
'RPX' => 'RPX');
?>
<span>Code :</span>
<?php echo form_input($codetrans,$row['codetrans']) ?><br/>
<span>Email :</span>
<?php echo form_input($email,$row['email']) ?><br/>
<span>Logistic Name :</span><br/>
<?php echo form_dropdown('log', $log,$row['log']); ?><br/><br/>
<span>No. Order :</span>
<?php echo form_input($no_order,$row['no_order']) ?><br/>
<?php $options = array(
'0' => 'Not Sendirng',
'1' => 'Has Sending'); ?><br/>
<?php echo form_dropdown('stats_order', $options,$row['stats_order']); ?><br/>
<?php echo form_hidden('input_hidden_id',$row['codetrans']);?>
<?php echo form_submit('submit', 'Submit', 'class=searchbutton'); ?>
<?php echo form_close();?>
<a class="close-reveal-modal">×</a>
</div>
<?php
?>
</ul>
<?php echo anchor('order/stats_order', 'Open All Stats', 'class="btn btn_aS"' ); ?>
</div>
这是我的控制器。
public function edit_stats_order()
$this->load->model('Order_model');
$codetrans = $this->input->post('codetrans');
$email = $this->input->post('email');
$log = $this->input->post('log');
$no_order = $this->input->post('no_order');
$stats_order = $this->input->post('stats_order');
if($email !='' && $codetrans !='' && $log !='' && $no_order !='')
$this->Order_model->edit_stats_order($codetrans,$email,$log,$no_order);
redirect('order/main');
else
echo "<script>alert('Check Again!');</script>";
echo "<script>location.href = document.referrer</script>";
这是我的模型。
public function edit_stats_order($codetrans,$email,$log,$no_order)
date_default_timezone_set('xxxxx');
$data['email'] = $email;
$data['no_order'] = $no_order;
$data['log'] = $log;
$data['stats_order'] = $stats_order;
$data['date'] = date('Y-m-d');
$this->db->where('codetrans',$codetrans);
$this->db->update('ordering',$data);
为什么我的代码有问题? 谢谢
【问题讨论】:
var_dump($query) 先检查它是否返回数据 你的代码容易受到SQL injection的影响$status
和 $stats
?在模型中。
哎呀抱歉我打错了@AksenP
任何人都可以提供帮助:(
【参考方案1】:
您试图在模型中未定义的模型函数中使用$stats_order
。所以你必须将$stats_order
传递给模型函数。
在$stats_order
的函数调用中再添加一个参数,以便将其传递给模型。
$this->Order_model->edit_stats_order($codetrans,$email,$log,$no_order,$stats_order);
同样在模型函数中再添加一个参数。将model中函数的第一行改为,
public function edit_stats_order($codetrans,$email,$log,$no_order,$stats_order)
【讨论】:
以上是关于如何修复我的表单没有将数据更新到数据库 [Codeigniter]的主要内容,如果未能解决你的问题,请参考以下文章