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

标签 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 (它只显示数组的最后一行)。

最佳答案

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

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

关于javascript - 使用 $.post() 将 PHP 数组发送到 jQuery,然后循环遍历这些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037312/

相关文章:

javascript - 仅更改折叠容器的图像 src

javascript - 如何使用 JS 引入移动和淡入淡出元素

javascript - Chrome Extension contenteditable 获取和设置插入符号位置

php - mysql_connect 需要很长时间才能执行

javascript - PHP 使用 post 以编程方式导航到新表单

php - 广告 block 无法正确放置

javascript - jQuery DropDown 文本/值显示在下一个输入中

javascript - iFrame 内的第 3 方应用程序?

javascript - Javascript for 循环中的 Ajax 请求

javascript - 如果选择菜单中不存在 .contains ("something") 选项,请执行某些操作