将PHP数组发送到JavaScript问题

时间:2016-06-13 05:30:02

标签: javascript php mysql arrays ajax

我有一个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中的数组中。

2 个答案:

答案 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]);
    }