我有一个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"
});
});
有什么想法吗?
答案 0 :(得分:1)
在您的控制器中,您可以将其作为变量传递
控制器:
function autocomplete(){
$data['methodName'] = "autocomplete";
$this->load->view('sales/new_order_details',$data);
}
现在您可以在以下视图中访问它:
$(function(){
$("#customer").autocomplete({
source: "<?=$methodName?>"
});
});
答案 1 :(得分:0)
如果您在php扩展文件中编写了jquery或javascript代码,可以这样做
$(function(){
$("#customer").autocomplete({
source: "<?php echo site_url('controllername/methodname');?>"
});
});