Jquery .getjson结果不显示
我正在尝试编写一个非常简单的autosuggest类型函数,这样,每当用户在搜索输入中输入一个值时,匹配结果的列表就会出现在下面(在ul中,id为playlist) 但是,页面上没有显示任何内容Jquery .getjson结果不显示,jquery,json,Jquery,Json,我正在尝试编写一个非常简单的autosuggest类型函数,这样,每当用户在搜索输入中输入一个值时,匹配结果的列表就会出现在下面(在ul中,id为playlist) 但是,页面上没有显示任何内容 我是不是错过了一些重要的东西?我不熟悉处理JSON请求。看起来数据本身就是一个数组: ([{"title":"Episode ^-- array 我不确定括号是从哪里来的,它们可能只是复制粘贴的东西,所以我将忽略它们 试试这个: $.each(data, function(item){ /
我是不是错过了一些重要的东西?我不熟悉处理JSON请求。看起来数据本身就是一个数组:
([{"title":"Episode
^-- array
我不确定括号是从哪里来的,它们可能只是复制粘贴的东西,所以我将忽略它们
试试这个:
$.each(data, function(item){
// ...
数据。项
似乎未定义。如果您查看JSON,它只是一个数组,而不是包含项的对象。您的url是错误的,因此服务器响应缺少函数名
响应应该如下所示:
jQuery12345(yourJson)
$.each(data, function(index,item){
$("<li>").text(item.title).appendTo("#playlist ul");
});
{"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
但是通过错误的url,发送到服务器的jsoncallback没有值(该值由jQuery生成,服务器应在响应中将其用作函数名)
使用以下任一选项:
url = "includes/live_search.php?jsoncallback=?&term=" + term;
(您缺少jsoncallback的问号)
(您不需要jsoncallback参数,它不是X域请求。让服务器用纯JSON响应)
您的$.each()应如下所示:
jQuery12345(yourJson)
$.each(data, function(index,item){
$("<li>").text(item.title).appendTo("#playlist ul");
});
{"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
$。每个(数据、函数(索引、项){
$(“”).text(item.title).appendTo(“#playlist ul”);
});
(传递给回调函数的第一个参数是索引,而不是当前项……第二个参数是什么)这里有几个问题。首先,您的请求被格式化为,但live_search.php没有用函数名填充JSON输出。这可能是因为您没有将请求中的“jsoncallback”参数设置为“”。但是,由于您正在进行跨域请求(同一来源),因此不需要使用JSONP。可以让list_search.php返回常规JSON,而无需外部函数填充。您可以打开live_search.php,删除输出$\u GET['jsoncallback']变量以及周围括号的代码。结果输出应如下所示:
jQuery12345(yourJson)
$.each(data, function(index,item){
$("<li>").text(item.title).appendTo("#playlist ul");
});
{"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
另外,您的$。每个迭代器都缺少回调函数中的第二个参数。见文件。下面我还提供了一个例子
$("#ep_search").keydown(function() {
var term = $("#ep_search").val();
url = "includes/live_search.php?term=" + term;
$.getJSON(url, function(data) {
$.each(data, function(idx, ele){
$("<li />").text(ele.title).appendTo("#playlist ul");
});
});
});
$(“#ep_搜索”).keydown(函数(){
var term=$(“#ep_搜索”).val();
url=“includes/live_search.php?term=“+term;
$.getJSON(url,函数(数据){
$.each(数据、函数(idx、ele){
$(“”).text(ele.title).appendTo(“#playlist ul”);
});
});
});
看起来与他的代码相同。你的意思是删除。物品?@kingjiv:是的,我删除了,现在已经删除了,你很快就完成了!你在我修正打字错误时发表了评论。JSON不是数组,它不是JSONWow!谢谢大家迄今为止的回答。今晚回家后我得试试这些,