通过Ajax将多维JSON阵列传递到jQuery Autocomplete的帮助
-
23-09-2019 - |
题
我正在尝试使用jQuery和AutoComplete插件在我的照片网站上实现实时搜索。当我在本地指定数据时,一切都起作用:
var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];
但是,当我将其移至PHP时,JQuery无法正确解析结果。我真的不确定这里发生了什么。我当前的代码如下:
<script>
$(document).ready(function(){
var data = '/livesearch';
$("#aut_field").autocomplete(data, {
formatItem: function(item) {
return item.text;
}
}).result(function(event, item) {
location.href = item.url;
});
});
</script>
我的PHP脚本以以下格式打印一个多维数组:
{"1":{"text":"Google Website","url":"http:\/\/www.google.com"},
"2":{"text":"Yahoo Website","url":"http:\/\/yahoo.com"},}
但是,当我执行警报时(item.Text)时,变量说未定义。
如果我确实提醒(项目),我会看到PHP输出的整个字符串。
我尝试使用eval()玩耍,但我不确定将其放在哪里或如何使JS实际解释数据。谢谢你的帮助。赞赏我实施的示例代码。
解决方案
已解释,视图查询列表中的所有任务(> 5000项),并以分页批量返回所有项目(> 5000)。为了使您的WebPart工作,它必须查询少于5000个项目,它也必须返回少于5000个项目。过滤列也必须索引。
实际说话,您的选项包括以下内容:
- 如果打算显示分配给当前用户的任务,则使用分配给'的过滤器等于'[me]并索引分配的列,创建视图
- 如果要为所有用户显示任务,则只需显示不完整的任务可能更好,在这种情况下,您需要使用过滤器状态创建视图“不等于”已完成并索引状态字段。
其他提示
尝试这种模式:
[
{"text":"Google Website","url":"http:\/\/www.google.com"},
{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]
和您的PHP脚本返回多维阵列/目的 混合。如果您坚持使用(您用几个“文本:” amd“ url;”炸毁Var),则它是:
[[{"text":"Google Website","url":"http:\/\/www.google.com"}],[{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}]]
更好的:
var x=[["Google Website","http:\/\/www.google.com"],["Yahoo Website","http:\/\/yahoo.com"]];
如果您想跳到Yahoo网站:var url = x [1] [1];
或者:
var x={"Google_Website":"http:\/\/www.google.com","Yahoo_Website":"http:\/\/yahoo.com"};
如果您想跳到google_website:var url = x [“ google_website”];
我的提示:访问 在此处输入链接说明
不隶属于 StackOverflow