jQuery自动完成问题

时间:2009-10-06 15:46:55

标签: jquery ajax json autocomplete plugins

我尝试集成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检索数据时却没有。

[1] http://docs.jquery.com/Plugins/Autocomplete

1 个答案:

答案 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)。