如何在数组中获取数组

时间:2017-11-03 02:25:24

标签: javascript php jquery arrays

我有一个来自php的数组,这里是

$results = array(
        "sEcho" => 1,
        "iTotalRecords" => count($newdata),
        "iTotalDisplayRecords" => count($newdata),
        "aaData" => $newdata
);

echo json_encode($results, JSON_PRETTY_PRINT); 

所有数据也打包为aaData内的数组我的问题是如何获取该数据?我的目标是在表中填充它,这是我的代码。

<script>
        var i,x;
        var tb = $("#col_details");

        $(document).ready(function() {
            $.ajax({
                url: 'qry_collection.php',
                type: "POST",
                datatype: 'json',
                success: function(data) {
                /* Delete table content */
                data = JSON.parse(data);
                console.log(data);
                $("#col_details tr").remove();
                /* Populate the table */
                   for (i = 0; i < data.length; i++) {
                       var tr = $("<tr />");
                       for (x in data[i]) {
                            var td = $("<td />");
                            td.html(data[i][x]);
                            tr.append(td);
                            count = i 
                        }
                        tb.append(tr);
                    }
                }
            });
        });
    </script>

我可以使用控制台看到数组,但是将其填充为表是我的概率。

TYSM

这是来自控制台的图像

enter image description here

1 个答案:

答案 0 :(得分:2)

dataObject,其属性为sEcho, iTotalRecords, iTotalDisplayRecords, aaData。您希望迭代data.aaData,其中包含任何$newdata的数组。

编辑:

success: function(data) {
    data = JSON.parse(data);
    /* Delete table content */
    $("#col_details tr").remove();
    /* Populate the table */
    $("#col_details").html(data.reduce((out, tr) => `${out}<tr>${d.reduce((o, td) => `<td>${td}</td>`, '')}</tr>`, ''));
}
@Aloso指出这很可能是在浏览器中直接运行,所以你可能不想使用模板字符串。

在这种情况下,您稍微调整格式:

function(data) {
    data = JSON.parse(data);
    /* Delete table content */
    $("#col_details tr").remove();
    /* Populate the table */
    $("#col_details").html(data.reduce(function(out, tr) { return out + '<tr>' + d.reduce(function(o, td) { return '<td>' + td + '</td>'}, '')} + '</tr>'}, ''));
}