我尝试使用php中的sql代码从数据库中检索数据 我使用此方法成功检索数据
$(document).ready( function () {
'use strict';
$('#JSONoffers').load('getOffers.php?useJSON')});
但是,我要求使用$.ajax()
方法检索数据
所以这就是问题所在。
这是我的php的部分代码。
if (isset($_REQUEST['useJSON'])) {
// echo what getJSONOFfer returns
echo getJSONOffer($conn);
}
function getJSONOffer($conn) {
$sql = "select eventTitle, catDesc, eventPrice from te_events_special_offers inner join te_category on te_events_special_offers.catID = te_category.catID order by rand() limit 1";
$rsOffer = mysqli_query($conn, $sql);
//$offer = mysqli_fetch_all($rsOffer, MYSQLI_ASSOC);
$offer = mysqli_fetch_assoc($rsOffer);
return json_encode($offer);
}
首先,我想通知互联网上发现的大多数示例或问题类似于这个问题,但至少,它们有我在php中没有的JSON文件或其他值。
我尝试使用下面的代码作为我的参考,但是,它使用json文件进行检索,该文件具有title
,author
来调用。
$(document).ready(function () {
'use strict';
$('#getBooks').click(function () {
$.ajax({
dataType: "json",
method: "get",
url: "server/books.json"}
)
.done(function (data, status, jqxhr) {
var bookList = $('#bookList').append('<dl/>');
window.console && console.log(status + '\n'+data.books);
$(data.books).each(function () {
$(bookList).find('dl').append("<dt><h3>"+this.title+
"</h3></dt><dd><p>"+this.author+
"</p><p>"+this.description+"</p></dd>");
});
}
)
.fail(function(jqxhr, textStatus, errorThrown) {
window.console && console.log(textStatus + ': ' + errorThrown);
}
);
$(this).attr("disabled", true);
});
});
实际上,我的php中只有sql代码
此外,我尝试了以下方法,但它不起作用,并且控制台上没有任何错误(我很难找到错误/错误)。
$(document).ready( function () {
'use strict';
//change the onclick to .load
$('#JSONoffers').load(function () {
$.ajax({
dataType: "json",
method: "get",
url: "getOffers.php?useJSON"}
)}
});
})
有人请帮助我。很欣赏!
现在,我通过引用其他来源尝试了以下代码,但仍然无效。
$(document).ready( function () {
'use strict';
//$('#JSONoffers').load('getOffers.php?useJSON')
$('#JSONoffers').load(function () {
$.ajax({
dataType: "json",
url: "getOffers.php?useJSON",
success : function(data){
$('#JSONoffers').html(data);
}
})
})
})
答案 0 :(得分:0)
我认为你做错了。 .load
就像我理解ajax
调用一样,它会请求内容并将其发送给客户端并显示。但是,ajax比那个更深,因为从ajax你可以操作Request头和响应。所以两者都不是很理想。如果要加载内容或显示响应中的内容。如下所示:
$.ajax({
dataType: "json",
method: "get",
url: "getOffers.php?useJSON"
}).done(function(res){
//do anything with the response here
});