当ajax调用时,数据没有显示

时间:2017-04-09 06:08:47

标签: jquery ajax

我想通过使用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中显示的代码后,数据未显示。

  • 1 个答案:

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