我有一个AJAX POST函数,它运行一个查询MySQL数据库的PHP文件。它使用" CONCAT" MySQL中的选项,然后将它接收的每一行添加到数组中。我需要从PHP到JavaScript获取该数组,我将如何进行此操作?
我已经尝试过查找但我发现的任何事情,或者我都不了解如何实际实现它,或者它只是没有工作。
$sql_query = substr($sql, 0, -3);
$result = $connection->query($sql_query);
if (!$result) {
die("Invalid Query: " . mysqli_error());
}
$rowCount = mysqli_num_rows($result);
echo "Total Bans: " . $rowCount . "\r\n";
echo "\r\n";
$bans = [];
while ($row = $result->fetch_row()) {
for ($x = 0; $x < $rowCount; $x++) {
array_push($bans, $row[$x]);
}
}
如果您需要,我会将我的部分PHP代码包含在内。
我试过了:
echo(json_encode($bans));
success: function(data) {
document.getElementById('outputtext').innerHTML = '';
var array = new Array();
array = data;
document.getElementById('outputtext').innerHTML = array;
}
返回一切,但增加了很多&#34;,&#34;他们之间。
数组中的索引示例:
[05-18]代达罗斯为EXAMPLE_REASON禁用了EXAMPLE_USERNAME(EXAMPLE_GUID / EXAMPLE_IP)
我希望$ bans数组中的所有行都放入JavaScript中的数组中。
答案 0 :(得分:1)
使用将php数组转换为json数组的echo(json_encode($bans));
时。要在javascript中使用json,首先应该像这样解析该数组
success : function(data){
result = JSON.parse(data) ;
}
现在您检查此数据console.log(result);
像这样通过密钥访问特定数据
name = result.name;
答案 1 :(得分:0)
您的代码中的这个地方是错误的:
while ($row = $result->fetch_row()) {
for ($x = 0; $x < $rowCount; $x++) {
array_push($bans, $row[$x]);
}
}
因为您使用while
循环播放记录,然后再使用for
进行内部循环。仅使用while
:
while ($row = $result->fetch_row()) {
array_push($bans, $row);
}
将拉出所有行并且没有空值。
如果您在从数据库返回时只有一列,则应使用:
while ($row = $result->fetch_row()) {
array_push($bans, $row[0]);
}