1

codeigniter オートコンプリートが正しく機能しています。JavaScript の構文は次のとおりです。

コントローラ

  function autocomplete(){
    $this->load->view('sales/new_order_details');
  }

モデル

function get_customer($q){
    $this->db->select('CustomerName');
    $this->db->like('CustomerName', $q);
    $query = $this->db->get('Customers');
    if($query->num_rows > 0){
      foreach ($query->result_array() as $row){
        $row_set[] = htmlentities(stripslashes($row['CustomerName'])); //build an array
      }
      $this->output->set_content_type('application/json')->set_output(json_encode($row_set));

    }
  }

JavaScript

$(function(){
  $("#customer").autocomplete({
    source: "get_customers"
  });
});

MVC フレームワークのコンセプトは再利用性です。要求しているコントローラーの名前を JavaScript に渡して、複数のコントローラー メソッドで動的に使用できるようにするにはどうすればよいですか?

次のようなものです:

var method=controllername.requestingmethod;
$(function(){
  $("#customer").autocomplete({
    source: "method"
  });
});

何か案は?

4

2 に答える 2

1

コントローラーでは、変数として渡すことができます

コントローラー:

function autocomplete(){
    $data['methodName'] = "autocomplete";
    $this->load->view('sales/new_order_details',$data);
}

これで、次のようにビューでアクセスできます。

$(function(){
    $("#customer").autocomplete({
        source: "<?=$methodName?>"
    });
});
于 2013-03-13T12:00:56.433 に答える
0

php 拡張ファイルに jquery または javascript コードを記述している場合は、次のように実行できます。

$(function(){
    $("#customer").autocomplete({
        source: "<?php echo site_url('controllername/methodname');?>"
    });
});
于 2013-03-13T11:51:57.397 に答える