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 回答