麻烦理解json和jquery-ui自动完成

时间:2011-11-10 20:04:31

标签: json jquery-ui

我正在尝试使用jquery-ui自动完成功能,但我无法完全理解如何将其连接起来。

为了查看功能,我们以

的json格式导出了一个用户名列表
["Abbott, Bob", 
"Adams, Jo", etc...

它超过8k行。我将其保存到名为names.json的文件中。当我设置自动填充功能时,我使用了以下内容:

$("#userName").autocomplete({
  source: "names.json"
}); 

基于jqueryi-ui autocomplete页面。它说:

When a String is used, the Autocomplete plugin expects that string to point to a URL resource that will return JSON data. 

它会返回所有8k +名称,而不是根据我输入的内容对其进行过滤。我尝试将其更改为:

$("#userName").autocomplete({
  source: "names.json?term="
}); 

这也无法过滤它。

我尝试过远程JSONP数据源示例的变体,但我似乎无法让它工作。

我尝试将我的json文件更改为以下格式:

[{"value":"Abbot, Bob"},
{"value":"Adams, Jo"}, etc...

没有过滤。

我已经尝试取出价值附近的报价。这没有任何回报。

我已经尝试将其更改为this stackoverflow question的答案中列出的格式,使用我的第二个json格式返回item.value,但也没有过滤它。

我不太确定我做错了什么,我希望能理解。谢谢。

1 个答案:

答案 0 :(得分:0)

您的数据源需要动态。

jquery ui autocomplete将向您指定的附加了?term=WHATEVER_THE_USER_TYPED的网址发送请求。您需要在服务器端处理该请求并返回该术语的数据。

例如,

$("#userName").autocomplete({
    source: "names.php" // php as an example.
}); 

将导致请求:

/names.php?term=abcd

names.php必须撤回与搜索匹配的数据并将其返回。