【问题标题】:How to Fix My Form Didn't Update Data to Database [Codeigniter]如何修复我的表单没有将数据更新到数据库 [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">&#215;</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
  • 任何人都可以提供帮助:(

标签: php html mysql codeigniter


【解决方案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){

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-21
    • 2013-10-28
    • 2015-06-26
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多