2017-09-04 99 views
0

我在提交表单后获取发布数据时遇到问题。我想要做的是,当用户点击提交按钮时,存储在隐藏字段中的输入值将被分配给另一个控制器类的变量。然而,当我试图打印出来的表格值,它总是给我NULL表单提交后,POST数据变为NULL(CodeIgniter)

这是我的代码:

控制器

public function updateOrder(){ 
    $this->form_validation->set_rules('delivery_status_id', 'Delivery Status', 'xss_clean'); 
    $this->form_validation->set_rules('remarks', 'Remarks', 'xss_clean'); 
    $this->form_validation->set_rules('total_amt', 'Total Amount', 'xss_clean'); 

    $data = array('remarks' => $this->input->post('remarks'), 
        'delivery_status_id' => $this->input->post('delivery_status_id'), 
        'total_amt' => $this->input->post('total_amt')); 

    if ($data['delivery_status_id'] == $getDeliveryStatusIdDelivered->row('id')) 
    { 
     $this->db->select('*'); 
     $this->db->from('user_has_penalty'); 
     $this->db->where("user_id =" . $this->session->userdata['id']); 

     $query = $this->db->get(); 

     foreach ($query->result() as $row) 
     { 
      $this->db->delete('user_has_penalty', array('user_id' => $this->session->userdata['id'])); 
      $this->db->delete('penalty', array('id' => $row->penalty_id)); 
     } 
    }else if($data['delivery_status_id'] == $getDeliveryStatusIdCancelled->row('id')) 
    { 
     $penalty_amt = $data['total_amt']/2; 
     $data = array('amount' => $penalty_amt); 
     $this->penalty->insert($data); 
     $penalty_id = $this->db->insert_id(); 

     //var_dump($penalty_id); 
    } 

    var_dump($this->input->post); // Outputs NULL 
} 

查看

... 

<?php 
    $name_c = 'Cancelled'; 
    $query = $this->DeliveryStatus->getDeliveryStatusByName($name_c); 

    echo form_open('Order_Controller/updateOrder'); 
?> 
    <input type="hidden" name="delivery_status_id" value="<?php echo $query->row('id'); ?>"/> 
    <button type="submit" class="btn btn-danger">YES</button> 
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
<?php echo form_close(); ?> 

有什么问题用代码?任何帮助,将不胜感激

+0

首先要检查的是生成的HTML代码。您是否看到隐藏字段中正在生成的值? – TimBrownlaw

+0

'Print_r($ _ POST)'并检查你发布的内容 –

+0

@TimBrownlaw我已经试过检查这个元素,是的,我得到了我期望的值 – Chamber

回答

1

在你的表格标签,如果你没有指定的方法,它将是get方法。

<form action="Order_Controller/updateOrder" method="post"> 

... 

</form> 
0

您在表单标记中缺少method

form_open('order_Controller/updateOrder', array('method'=>'post')); 

注:

  1. 请使用数据库相关的查询模式。
  2. 将查询结果传递给控制器​​,然后传递给视图。
  3. 您可以在配置中添加验证。在一个地方处理所有验证。