PHP将PHP数据传递到JS数组

时间:2018-10-25 14:21:12

标签: javascript php jquery ajax

我有一个PHP文件,该文件正在查询MySQL数据库以返回结果,我目前正在将相关结果行保存到PHP数组中,然后尝试用存储的PHP数据回显JS数组。我似乎无法从我的JS文件访问JS变量。

PHP:

  while($row = mysqli_fetch_array($query)) {
    $dataArray = array($row['stepNumber']);
    echo '<script>';
    echo 'var dataArray = ' . json_encode($dataArray) . ';';
    echo '</script>';
  }

JS:

$.ajax({
    type: 'POST',
    url: 'queries/dateRangeSelect.php',
    dataType: 'text',
    data: {startDate: startDate, endDate: endDate},
    cache: false,
    success: function(response) {
        console.log(response);
        window.alert(dataArray);
    },
dataArray尝试触发时,

window.alert被报告为未定义。

编辑:

  while($row = mysqli_fetch_array($query)) {
    $dataArray = array($row['stepNumber']);
  }
  header('Content-Type: application/json');
  echo $dataArray;

不再打印错误,但控制台现在不打印任何内容。

1 个答案:

答案 0 :(得分:3)

不要返回<script>标记,您只需返回JSON:

header('Content-Type: application/json');
echo $json;

您可能想在循环完成后执行此操作,并建立了要返回的数组。

  

更新

根据您的修改,我建议更像这样的内容:

$dataArray= [];
while($row = mysqli_fetch_array($query)) {
    $dataArray[] = array($row['stepNumber']);
}
header('Content-Type: application/json');
echo json_encode($dataArray);