【发布时间】:2011-08-25 04:26:14
【问题描述】:
当我莫名其妙地完全停止运行时,我让 jQuery 自动完成功能与 CodeIngiter 完美配合。当我访问自动完成控制器时,我仍然看到正确的数组 - Javascript 只是没有返回 JSON 数据。奇怪的是它工作正常,然后突然停止工作。
这是我的 Javascript:
$( "#clubs-complete" ).autocomplete({
source: function(request, response) {
$.ajax({
url: 'http://www.myurl.com/create/autocomplete',
data: 'term='+$("#clubs-complete").val(),
dataType: "json",
type: "POST",
success: function(data){
alert(data);
response(data);
}
});
},
minLength: 1
});
这是我的控制器:
public function autocomplete()
{
// Search term from jQuery
$term = $this->input->post('term');
$this->db->select('name','address2');
$this->db->from('clubs');
$this->db->like('name', $term);
$suggestions = $this->db->get()->result();
if (count($suggestions) > 0) {
$data = array();
foreach ($suggestions as $suggestion) {
array_push($data, $suggestion->name);
}
// Return data
echo json_encode($data);
}
}
有人知道发生了什么吗? javascript 函数中的警报现在什么都不返回,以前也是。当我直接访问 URL 时,我仍然可以看到完整的数组。
请帮忙,我正在扯头发。
【问题讨论】:
-
是否有任何变化在您的控制范围内(jQuery 版本等)或可能超出您的控制范围? (网络服务器更改)?
-
使用 firebug for firefox 来调试这个
-
不幸的是,什么都没有改变......它正在工作,然后它没有,而我正在编辑代码的另一部分。当我在 SVN 中恢复时 - 没有任何变化。
标签: javascript jquery mysql codeigniter autocomplete