使用$ .post()将PHP数组发送到jQuery,然后循环遍历这些值

时间:2013-11-17 22:57:28

标签: javascript php jquery arrays

我正在向jQuery发送一个数组,然后循环遍历这些值并显示它们,但我可以让它正常工作。有人能指出我正确的方向 -

PHP - 唯一重要的部分 - echo json_encode($tR);

jQuery -

$(document).on('click', '.chooseStat', function(){
    var id = $(this).attr('id');
    $.post('chooseStat.php', {id:id}, function(data){
        console.log(data);
        var open = '';
        for(var i = 0; i < data.length; i++) {
            if (i % 2 == 0) {
                open+="<tr class='alt'>";
                open+="<td>"+data[i]+"</td>";
                open+="<td>"+data[i]+"</td>";
                open+="<td>"+data[i]+"</td>";
                open+="</tr>";
            }
            else {
                open+="<tr>";
                open+="<td>"+data[i]+"</td>";
                open+="<td>"+data[i]+"</td>";
                open+="<td>"+data[i]+"</td>";
                open+="</tr>";
            }
        }
        $('#statDisplayBody').html(open);
    });
});

当数组被发送到jQuery脚本时,它看起来是什么样子 - http://prntscr.com/24wa68

当我尝试使用我所拥有的脚本中的方法显示它们时,看起来是什么样子 - http://prntscr.com/24wadk

我的新jquery -

$(document).on('click', '.chooseStat', function(){
    var id = $(this).attr('id');
    $.post('chooseStat.php', {id:id}, function(data){
        console.log(data);
        var open = '<th>Rank</th><th>Username</th><th>Stat</th>';
        for(var i = 0; i < data.length; i++) {
            if (i % 2 == 0) {
                open+="<tr class='alt'>";
                open+="<td>"+data[i]["rank"]+"</td>";
                open+="<td>"+data[i]["username"]+"</td>";
                open+="<td>"+data[i]["score"]+"</td>";
                open+="</tr>";
            }
            else {
                open+="<tr>";
                open+="<td>"+data[i]["rank"]+"</td>";
                open+="<td>"+data[i]["username"]+"</td>";
                open+="<td>"+data[i]["score"]+"</td>";
                open+="</tr>";
            }
        }
        $('#statDisplayBody').html(open);
    }, "json");
});

现在返回一个正确的数组,但我循环的方式显然似乎不起作用,因为现在正在发生 - http://prntscr.com/24wcuz(它只显示数组的最后一行)。

1 个答案:

答案 0 :(得分:3)

您需要在JavaScript中正确解析它。这可以通过data = JSON.parse(data);完成,也可以使用$.post,如下所示(请参阅jQuery API, Example 7

$.post('chooseStat.php', {id:id}, function(data){
    //code
}, "json");