从JSON数组获取列表结果
从JSON array
获得第一行结果后,我需要使用jquery
每个方法打印所有结果。
这是我的语法
$(document).ready(function () { $("#btnsearch").click(function() { valobj = $('#search_box').val(); $.getJSON("search.php", { q : valobj }, function(data,result){ //show result from database $.each(data.content, function() { $('.toprightsec').append("Title" + data.content[0].title) .append("Intro" + data.content[0].intro_text); }); //end show result }, JSON); });
data.content[0]
仅显示循环的第一行。 但它自己没有改变的数据。 如何解决data.content[0]
.title,所以行像数据库一样打印?
UPDATE
在为我的函数创建一些调整后,我添加了新function以使用列表显示结果。
这是语法
$(document).ready(function () { //function to get the result from user-input $("#btnsearch").click(function() { valobj = $('#search_box').val(); $.getJSON("search.php", { q : valobj }, function(data,result){ //show result from database $.each(data.content, function(index, value) { $("#divContent").show(); var li = $("
"); $("#posting").append(li); $("a",li).text(value.title); $("p",li).text(value.intro_text); }); //end show result }, JSON); });
问题是,我如何重置结果,如果我们想基于另一个关键字显示,那么如果用户键入新关键字,列表是否清楚? 没有刷新浏览器。
谢谢。
更新2
$(document).ready(function () { //function to get the result from user-input $("#btnsearch").click(function() { //clear the div $("#divContent").html(""); valobj = $('#search_box').val(); $.getJSON("search.php", { q : valobj }, function(data,result){ //show result from database $.each(data.content, function(index, value) { $("#divContent").show(); var li = $("
"); $("#posting").append(li); $("a",li).text(value.title); $("p",li).text(value.intro_text); }); //end show result }, JSON); });
在每个中,您可以在当前迭代中捕获元素:
$.each(data.content, function(i, val) { $('.toprightsec') .append("Title" + val.title) .append("Intro" + val.intro_text); });
在$ .each函数中有两个参数。 第一个是索引,第二个是值。
像这样:
$.each(data.content, function(index,value) { alert(value); }
你可以使用它们作为变量,在你的情况下,每个循环将执行如下:
$.each(data.content, function(index, value) { $('.toprightsec') .append("Title" + value.title) .append("Intro" + value.intro_text); });