PHP передает данные PHP в массив JS - PullRequest
0 голосов
/ 25 октября 2018

У меня есть файл PHP, который запрашивает базу данных MySQL для возврата результатов, в настоящее время я сохраняю соответствующую строку результатов в массиве PHP, а затем пытаюсь отобразить массив JS с сохраненными данными PHP.,Кажется, я не могу получить доступ к переменной 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 голосов
/ 25 октября 2018

Не возвращайте тег <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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...