我有一些问题。我创建了一些消耗JSON数组的应用程序。
语法使用Jquery 1.9
逻辑是:从文本框中获取值(下面的valobj变量),然后写入toprightsec div区域。
$("#btnsearch").click(function() {
valobj = $('#search_box').val();
$.getJSON("search.php", { q : valobj }, function(data,result){
//show result from database
$('toprightsec').append("Title" + data.title)
.append("Intro" + data.intro_text);
//end show result
}, JSON);
});
JSON数组来自PHP结果。一些例子
{"content":[{"title":"Test Post 100","intro_text":"Intro Test"}]}
但是,它不起作用。有帮助吗?
提前感谢。
更新
$("#btnsearch").click(function() {
valobj = $('#search_box').val();
$.getJSON("search.php", { q : valobj }, function(data,result){
//show result from database
$('.toprightsec').append("Title" + data.content[0].title)
.append("Intro" + data.content[0].intro_text);
console.log(data)
//end show result
}, JSON);
更新2
$(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);
});
答案 0 :(得分:2)
使用以下代码:
$('.toprightsec').append("Title" + data.content[0].title)
.append("Intro" + data.content[0].intro_text);
而不是:
$('toprightsec').append("Title" + data.title)
.append("Intro" + data.intro_text);
如果toprightsec
为id,则使用#和if类,然后使用.
。在这里你没有指明。
答案 1 :(得分:0)
您正在使用json数组,因此您必须访问单个数组元素而不是整个数组:
json_array.title //WRONG
json_array[0].title //OK
尝试类似:
$("#btnsearch").click(function() {
valobj = $('#search_box').val();
$.getJSON("search.php", { q : valobj }, function(data,result){
//show result from database
if (data.length){
var _props = data.pop().content;
$('toprightsec').append("Title" + _props.title)
.append("Intro" + _props.intro_text);
}
//end show result
}, JSON);
});