我试图让所有列和行在添加到 JS 和 PHP 中的数组后显示。由于某种原因,播放器栏和状态栏都没有填充内容。任何对此的见解都值得赞赏。
这是收集数组的代码:
<?php include('../../functions.php');
$query = "
SELECT
*
FROM
plobby
LEFT JOIN users ON users.UID = plobby.UID
WHERE
`LID` = '". preg_replace("/[^A-Za-z0-9 ]/", '', $_POST['id']) ."';
";
$result = $db->query($query);
$rows = [];
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
echo json_encode($rows);
?>
这是表格来源的代码:
var reloadTable = function(data) {
if ($.data(state) == $.data(data)) {
return;
}
$('#js-lobby-table').empty();
$.each(data, function(rowNumber, rowData) {
var row = $('<tr>');
//console.log(data);
// Player
row.append($('<td>', {
'html': data.eName
}));
// Status
row.append($('<td>', {
'html': data.gameID == "000" ? 'waiting' : 'ingame'
}));
// Win %
row.append($('<td>', {
'html': 'TODO'
}));
// Games
row.append($('<td>', {
'html': 'TODO'
}));
// K/D
row.append($('<td>', {
'html': 'TODO'
}));
$('#js-lobby-table').append(row);
});
// Set the current table state.
state = data;
};
setInterval(function() {
$.ajax({
type: 'POST',
url: '/lobby/api/table.php',
data: {
id: '<?= $_GET['
id '] ?>'
},
success: reloadTable,
dataType: 'json'
});
}, 10);
最佳答案
调试时,请查看变量中的值以确保它们符合您的预期。您的代码对这些变量的处理不一致。例如,您正在循环数据
:
$.each(data ...
这意味着data
是一个数组。但随后您还尝试访问 data
上的值:
'html': data.eName
我怀疑您实际上想在该迭代中访问rowData
上的值:
'html': rowData.eName
(代码中再多行几行也会出现同样的错误。)
关于javascript - JS和PHP中表格添加到数组后仅显示部分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897254/