2 回答
TA贡献1845条经验 获得超8个赞
您的代码中有很多错误。
JSON.stringify({selected_student_filter_data})
除非您的服务器需要一个具有selected_student_filter_data
属性的对象,否则不要这样做。那是ES2015 Object Property Shorthand。不要把
$(document).ready
AJAX 成功响应放在里面,把函数loadTable
放在外面,然后从那里调用它,然后从$(document).ready
.selected_student_data = JSON.stringify(selected_student)
将为 . 放置一个字符串值selected_student_data
。你不想那样做。您需要,JSON.parse
但如果您设置响应标头,jQuery 会为您执行此操作Content-type: application/json
。
我建议您首先清除success
函数内部的所有内容,然后检查并了解您是否获得了正确的数据以及以何种形式。然后创建loadTable
将数据填充到表中的函数。
...
success: function(data) {
console.log(data); // Open console and check the data you get
}
...
TA贡献1876条经验 获得超7个赞
如果您不介意不同的实现,请检查以下解决方案。
动态呈现表格内容。
function addTable(data, headers) {
var myTableDiv = document.getElementById("myTable");
myTableDiv.innerHTML = "";
var table = document.createElement('TABLE');
table.border = '1';
var tableHeader = document.createElement('THEAD');
table.appendChild(tableHeader);
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
var n = data.length;
var m = headers.length;
var thKeys;
if (n > 0) {
thKeys = Object.keys(data[0]);
}
var tr = document.createElement('TR');
tableBody.appendChild(tr);
for (var j = 0; j < m; j++) {
var td = document.createElement('TD');
td.width = '75';
td.innerText = thKeys[j];
tr.appendChild(td);
}
for (var i = 0; i < n; i++) {
tr = document.createElement('TR');
tableBody.appendChild(tr);
for (var j = 0; j < m; j++) {
var td = document.createElement('TD');
td.width = '75';
td.innerText = data[i][thKeys[j].toLowerCase()];
tr.appendChild(td);
}
}
myTableDiv.appendChild(table);
}
var data = [
{
"title": "021",
"score": 86,
"ref": "desc 021",
"id": "ABC021"
},
{
"title": "022",
"score": 72,
"ref": "desc 022",
"id": "ABC022"
}
];
addTable(data, ['Title', 'Score']);
function updateTable() {
addTable(data, ['Title', 'Score', 'Ref', 'Id']);
}
function reset() {
addTable(data, ['Title', 'Score']);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myTable"></div>
<button onclick="updateTable()">update table</button>
<button onclick="reset()">reset table</button>
添加回答
举报