我正在尝试使用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)时,变量显示为undefined。
如果我警告(Item),我会看到PHP输出的整个字符串。
我尝试过使用eval(),但我不知道该把它放在哪里,也不知道如何让JS真正解释数据。谢谢你的帮助。对于我的实现,非常感谢样例代码。
发布于 2010-01-27 15:52:55
问题出在php代码上。
您的工作是模拟工作javascript数组的结构。参见php的json_encode()
发布于 2010-01-27 16:00:02
在你的php中试试这个模式:
[
{"text":"Google Website","url":"http:\/\/www.google.com"},
{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]发布于 2013-04-16 16:26:28
并且您的PHP脚本返回多维数组/对象的混合。如果你坚持(你用几个“shou1ld:”和“url;”来破坏你的变量),它就是:
[[{"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"]];如果你想跳转到雅虎网站: var url=x1;
或者:
var x={"Google_Website":"http:\/\/www.google.com","Yahoo_Website":"http:\/\/yahoo.com"};如果你想跳转到Google_Website: var url=x"Google_Website";
我的建议:访问enter link description here
https://stackoverflow.com/questions/2145035
复制相似问题