如何修复我的表单未将数据更新到数据库[Codeigniter]

时间:2019-11-28 08:02:03

标签: php html mysql codeigniter

我的表格有问题。当我输入表单并提交时,表单没有保存到我的数据库中。 在我的表单中显示代码交易,并向客户发送电子邮件。如果客户在我的网站上购买产品。 我只是通过点击表单代码交易确认订单。

以表单代码交易显示,代码交易和电子邮件客户的形式出现。然后我输入物流名称,否。物流订单以跟踪客户的订单,并选择已发送的订单包。

但是在我的问题中,表单成功保存了订单包信息“已发送”,但后勤名称为no。物流订单未保存。

这是我的观点。

<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);
}

为什么我的代码有问题? 谢谢

1 个答案:

答案 0 :(得分:1)

您正在尝试在模型中未定义的模型函数中使用$stats_order。因此,您必须将$stats_order传递给模型函数。

$stats_order的函数调用中再添加一个参数,以将其传递给模型。

$this->Order_model->edit_stats_order($codetrans,$email,$log,$no_order,$stats_order);

还可以在模型函数中再添加一个参数。将模型中函数的第一行更改为

public function edit_stats_order($codetrans,$email,$log,$no_order,$stats_order){