2009-10-06 86 views
1

我尝试整合jQuery自动完成插件[1],但没有为我工作。在这里我的代码:jQuery的问题自动完成

$('#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

回答

3

你错误地传递一个函数作为第一个参数,以autocomplete。该方法的签名是:

autocomplete(url or data, options); 

和你正在做的:

autocomplete(function(term) { 

取而代之的是,通过你的网址作为第一个参数,和MOD服务器代码读取自动添加“Q”参数(其表示术语或字符串中的约束输入元件):

$('#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 。 该插件然后用包含当前 搜索值的 “q”参数请求数据。

我从来没有试过JSON返回到autocompleter(我敢肯定,你可以),但上述假设从服务器返回的数据是由一个换行符"\n"(自动完成转换成那些LIS)分离。

+0

太棒了!适用于mit参数q ...;) – cupakob