使用来自php的jquery ajax检索数据

时间:2017-04-08 16:15:36

标签: php jquery ajax

我尝试使用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文件进行检索,该文件具有titleauthor来调用。

$(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);
        }   
       })
     })
})

1 个答案:

答案 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
 });