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 に答える