使用Ajax和JSON的动态表

时间:2013-07-17 14:21:20

标签: php javascript json codeigniter

我的响应是来自我的json_encode

[{"name":"Client Serv","Handled":"1","Resolved":"1","Escalated":"0"},
 {"name":"Chat","Handled":"1","Resolved":"0","Escalated":"0"}]

我希望将这些数据制成表格,但我认为我的代码存在问题。附加的东西不起作用。

request.done(function(msg) {
    $("#my_progress tbody").html('');
    msg = JSON.parse(msg);
    for(i = 0; i < msg.length; i++){
        $('#my_progress tbody').append('<tr><td>' + msg[i].name +'</td><td>' + msg[i].Handled + '</td><td>' + msg[i].Resolved + '</td><td>' + msg[i].Escalated + '</td></tr>');
    }
});

4 个答案:

答案 0 :(得分:0)

它对我有用..查看JSFiddle

所以你的问题似乎在其他地方。您确定要调用request.done吗?

在浏览器中打开javascript控制台并查找错误!

答案 1 :(得分:0)

您可能在jQuery ajax方法中有dataType(或其他)错误。所以done方法不会调用它的函数参数。如果你可以复制和粘贴完整的ajax方法,那就太好了。

答案 2 :(得分:0)

有一个Uncaught SyntaxError:此行中的意外标记A msg = JSON.parse(msg);

这是我的完整ajax方法,

get_hourly_progress: function(o){


        var request = $.ajax({
              url: Logger.baseurl +Logger.indexpage+ "cs/get_hourly_progress",
              type: "POST",
              data: { 'end_date': $('#time_interval').val()},
              dataType: "html",
              beforeSend: function(jqXHR, settings){

              }
            });


            request.done(function(msg) {
                $("#my_progress tbody").html('');
                msg = JSON.parse(msg);
                for(i=0;i<msg.length;i++){  
                    $('#my_progress tbody').append('<tr><td>' + msg[i].name +'</td><td>' + msg[i].Handled + '</td><td>' + msg[i].Resolved + '</td><td>' + msg[i].Escalated + '</td></tr>');
                }
            }); 


            request.fail(function(jqXHR, textStatus) {
                console.log(jqXHR);
                console.log(textStatus);
                alert( "Request failed: " + textStatus );
            });

},

答案 3 :(得分:0)

在将其解析为javascript对象之前,请确保在request.done函数中成功传递了正确的JSON字符串。