我想通过使用ajax来显示来自php的数据
我使用success: function(){alert(""success)} :
检查连接,因此连接没有问题
但数据没有显示。
这是ajax代码。
$(document).ready( function () {
'use strict';
//this line works!
//$('#JSONoffers').load('getOffers.php?useJSON')
//try to get data using .ajax()method
$.ajax({
dataType: "json",
url: "getOffers.php?useJSON",
success: function(data){
$('#JSONoffers').html(data);
},
error:function(){
alert("Fail");
}
});
})
这里是部分HTML代码(包含脚本)
<aside id="JSONoffers"> </aside>
控制台没有错误。
有什么错吗?
编辑以
$.ajax({
dataType: "json",
url: "getOffers.php?useJSON",
success: function(data){
console.log(data);
//$('#JSONoffers').append(JSON.stringify(data))
var $li, $ul = $('<ul>');
for (var i=0, l=data.length; i<l; i++) {
$li = $('<li>').text(data[i].eventTitle);
$li = $('<li>').text(data[i].catDesc);
$li = $('<li>').text(data[i].eventPrice); //include other props here
$ul.append($li);
}
$('#JSONoffers').html($ul[0].outerHTML)
},
error:function(){
alert("Fail");
}
});
由于数据类型是JSON,因此使用append(JSON.stringify(data))
。
但是,为什么使用$('#JSONoffers').html($ul[0].outerHTML)
,.html()
代替append(JSON.stringify(data))
。
此外,在我应用试图在ul
中显示的代码后,数据未显示。
答案 0 :(得分:2)
html()
需要标记。因为你实际上传递了JSON,$('#JSONoffers').html(data)
将不会做任何事情。如果你想注入JSON,你应该做
$('#JSONoffers').text(data)
这会(可能)导致在[object Object]
等表单上插入内容,因此在注入之前stringify()
:
$('#JSONoffers').text(JSON.stringify(data))
将JSON项目插入为<ul><li></li></ul>
,小例子:
var $li, $ul = $('<ul>');
for (var i=0, l=data.length; i<l; i++) {
$li = $('<li>').text(data[i].eventTitle); //include other props here
$ul.append($li);
}
$('#JSONoffers').html($ul[0].outerHTML)