0

首先,假设我想获取主键'customer_code' 4 的记录,并希望以表格形式提供它们。我可以通过这样的模型中的简单函数成功实现它:

public function get_Acustomer()
  {    
    $query = $this->db->get_where('allinone',array('customer_code' => '4'));
    return $query->result_array();
  }

我的问题是,如何实现通过变量制作'customer_code'?

我正在使用 DataTables,并且通过它fnGetData我能够获得行记录。这是jQuery:

$('#example tbody td').dblclick( function() {
      var TTr = $(this).parents('tr')[0];

      var tData = oTable.fnGetData( TTr );
      var cc = tData[1]; //tData[1] is my 'customer_code'

      if ( $(TTr).hasClass('row_selected') ) {
        $(TTr).removeClass('row_selected');
      }
      else {
        oTable.$('tr.row_selected').removeClass('row_selected');
        $(TTr).addClass('row_selected');          
        $.ajax({  
            type: "POST",  
            url: '<?php echo base_url();?>dbcust/update',  
            data: {cc: cc},  
            success: function() {
            }  
        });
      }

当用户连续双击时,它会将“cc”的发布值发送到我的控制器函数“update”,然后控制器立即将其传递给模型“get_Acustomer”。

这是控制器:

public function update()
  {  
    $this->load->helper('form');
    $this->load->library('form_validation');

    $this->dbcust_model->get_Acustomer();
    $data['title'] = 'Update';
    $data['cust'] = $this->dbcust_model->get_Acustomer();

    //Some validation rules & mesagges
    [skip...skip]

    //finally  
    if ($this->form_validation->run() === FALSE)
    {
      $this->load->view('cust/template/crud/update-form');
    }
    else
    {
      $this->dbcust_model->edit_dbcust();
      $this->load->view('cust/template/crud/success');
    }  
  }

这是模型:

  public function get_Acustomer()
  {   
    $custCode = $this->input->post('cc');

    $query = $this->db->get_where('allinone',array('customer_code' => $custCode));
    return $query->result_array();   
  }

为什么这个简单是行不通的?大家可以指点我吗?

我的目标是,在用户双击一行/选择一行后,他们点击链接到的东西http://myhost/dbcust/update,他们将为表单提供该行的记录。

我希望我的问题对大家来说都很清楚。谢谢你。

4

1 回答 1

0

在模型中读取 POST 变量不是一个好主意。

而是在控制器中获取 CC 值。验证它。然后将该值传递给模型中的方法。

控制器

public function update() {  

    $this->load->helper('form');
    $this->load->library('form_validation');

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

    //Validate $cc if everything is OK

    $data['title'] = 'Update';
    $data['cust'] = $this->dbcust_model->get_Acustomer($cc);

    //Some validation rules & mesagges
    [skip...skip]

    //finally  
    if ($this->form_validation->run() === FALSE) {
        $this->load->view('cust/template/crud/update-form');
    } else {
        $this->dbcust_model->edit_dbcust();
        $this->load->view('cust/template/crud/success');
    }  
}

模型

public function get_Acustomer($custCode) {   
    $query = $this->db->get_where('allinone',array('customer_code' => $custCode));
    return $query->result_array();   
}

让我知道这是否有效,或者是否有任何其他问题。

于 2013-09-17T04:53:53.623 回答