我尝试构建自动完成搜索。因此我使用了jquery ui和这一小段代码:
$(function() {
$("#search").autocomplete({
source: function( request, response ) {
$.ajax(
{
url: 'autocomplete.php',
dataType: "json",
data:
{
term: request.term,
},
success: function (data)
{
response(data);
},
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
});
},
minLength: 2,
select: function(event, ui) {
var url = ui.item.id;
if(url != '#') {
location.href = '/blog/' + url;
}
},
html: true,
open: function(event, ui) {
alert("open");
$(".ui-autocomplete").css("z-index", 1000);
}
});
});
文件autocomplete.php返回json编码数据。
我的问题是,对于每个有效的响应和结果,我得到一个“错误:语法错误,无法识别的表达式:”错误,我的结果不会显示在列表中。这个错误意味着什么?
非常感谢!
答案 0 :(得分:0)
您没有提供所有信息来确定问题,但您应该致电
console.log(data);
在success
函数的开头,查看控制台中的响应。您必须在生成请求响应的PHP中或在<a/>
传递的函数中使用</a>
而不是response
的错误语法。
答案 1 :(得分:0)
尝试使用
$(document).ready(function () {
/*here comes your code*/
});
此外,在您的成功功能中,尝试将其更改为
success: function (data)
{
alert(data.d);
},
因为您要返回 d ,而不是数据。 d表示数据对象的属性。