使用ajax通过变量post在模型中使用CodeIgniter get_where

时间:2013-09-17 04:38:24

标签: jquery ajax codeigniter

首先,假设我想要使用主键' 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() {
            }  
        });
      }

当用户连续双击时,会发送&#39; cc&#39;到我的控制器功能&#39;更新&#39;然后控制器立即将其传递给模型&#39; get_Acustomer&#39;。

这是控制器:

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的内容时,他们将为该表单提供行记录。

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

1 个答案:

答案 0 :(得分: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();   
}

请告知我这是否有效或是否存在任何其他问题。