我有一个来自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
这是来自控制台的图像
答案 0 :(得分:2)
data
是Object,其属性为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>'}, ''));
}