我正在尝试使用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个项目。过滤列也必须索引。

实际说话,您的选项包括以下内容:

  1. 如果打算显示分配给当前用户的任务,则使用分配给'的过滤器等于'[me]并索引分配的列,创建视图
  2. 如果要为所有用户显示任务,则只需显示不完整的任务可能更好,在这种情况下,您需要使用过滤器状态创建视图“不等于”已完成并索引状态字段。

其他提示

尝试这种模式:

[
   {"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”];

我的提示:访问 在此处输入链接说明

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top