首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助通过AJAX将多维数组传递给jQuery自动完成

问帮助通过AJAX将多维数组传递给jQuery自动完成
EN

Stack Overflow用户
提问于 2010-01-27 14:43:46
回答 3查看 2.5K关注 0票数 1

我正在尝试使用jQuery和autocomplete插件在我的照片网站上实现实时搜索。当我在本地指定数据时,一切都会正常工作:

代码语言:javascript
复制
var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];

但是,当我将它移到PHP时,jQuery无法正确解析结果。我真的不知道这是怎么回事。我当前的代码如下:

代码语言:javascript
复制
<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脚本打印一个多维数组,格式如下:

代码语言:javascript
复制
{"1":{"text":"Google Website","url":"http:\/\/www.google.com"},
 "2":{"text":"Yahoo Website","url":"http:\/\/yahoo.com"},}

但是,当我发出警报(item.text)时,变量显示为undefined。

如果我警告(Item),我会看到PHP输出的整个字符串。

我尝试过使用eval(),但我不知道该把它放在哪里,也不知道如何让JS真正解释数据。谢谢你的帮助。对于我的实现,非常感谢样例代码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-27 15:52:55

问题出在php代码上。

您的工作是模拟工作javascript数组的结构。参见php的json_encode()

票数 1
EN

Stack Overflow用户

发布于 2010-01-27 16:00:02

在你的php中试试这个模式:

代码语言:javascript
复制
[
   {"text":"Google Website","url":"http:\/\/www.google.com"},
   {"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]
票数 1
EN

Stack Overflow用户

发布于 2013-04-16 16:26:28

并且您的PHP脚本返回多维数组/对象的混合。如果你坚持(你用几个“shou1ld:”和“url;”来破坏你的变量),它就是:

代码语言:javascript
复制
[[{"text":"Google Website","url":"http:\/\/www.google.com"}],[{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}]]

更好的:

代码语言:javascript
复制
var x=[["Google Website","http:\/\/www.google.com"],["Yahoo Website","http:\/\/yahoo.com"]];

如果你想跳转到雅虎网站: var url=x1;

或者:

代码语言:javascript
复制
var x={"Google_Website":"http:\/\/www.google.com","Yahoo_Website":"http:\/\/yahoo.com"};

如果你想跳转到Google_Website: var url=x"Google_Website";

我的建议:访问enter link description here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2145035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档