我尝试集成jQuery Autocomplete插件[1],但不适合我。这是我的代码:
$('#input').autocomplete(function(term) {
var searchUrl = urlBase + 'tagging/autocomplete/?term=' + term;
$.getJSON(searchUrl, function(jsonData) {
test = jsonData;
console.log(test);
});
});
console.log的输出如下所示:
[ "EBE", "EBE1", "EBE2"]
对于输出我正在使用php函数json_encode()
echo json_encode ($words);
有人能告诉我,我的代码有什么问题吗?使用插件页面中的虚拟数据工作....但是当我尝试通过URI检索数据时却没有。
答案 0 :(得分:3)
您错误地将函数作为第一个参数传递给autocomplete
。方法签名是:
autocomplete( url or data, options );
你正在做:
autocomplete(function(term) {
而不是那样,将您的url作为第一个参数传递,并修改您的服务器代码以读取自动附加的'q'参数(表示绑定输入元素中的 term 或字符串):
$('#input').autocomplete('tagging/autocomplete/', {
formatItem: function(data, i, n, value) {
return "<font color='#3399CC'>" + value + "</font>";
},
formatResult: function(data,value) {
return value;
}
}).result(function(event, data, formatted) {
console.log(data);
});
手册说:
对于远程自动填充,请指定URL 到提供数据的资源。 然后插件用a请求数据 “q”参数包含当前 搜索价值。
我从未尝试将json返回到自动填充程序(我相信你可以)但是上面假设从服务器返回的数据由换行符"\n"
分隔(自动完成将这些转换为LI)。