Как правильно распаковать данные из массива PHP в формате JSON из файла JavaScript

Я часами искал поиски и пробовал разные фрагменты кодов и техник, и я просто не могу заставить их работать. Я провел исследование, я просто очень неопытный разработчик, пытающийся учиться на ходу.

Моя конечная цель: Получите оперативно обновляемый график данных результатов испытаний, извлеченных из базы данных MySQL и отрисованных с использованием библиотеки Chart.JS.

Что я сделал до сих пор:

  1. У меня есть HTML-файл со встроенным JavaScript и вызовами функции AJAX для автоматического обновления страницы каждые 5 минут (это было проверено и работает).
  2. У меня есть файл PHP, который открывает соединение PDO с локальной базой данных MySQL, выполняет 3 запроса выбора и сохраняет результаты в 3 массивах PHP. (Я перебрал массивы и повторил результаты, и данные хорошие).
  3. Затем я сохранил данные внутри этих массивов PHP в объект JSON, используя json_encode ()
    например
    $totalTestsPassedArray = array();
    $sql = "SELECT totalTestsPassed FROM execution ORDER BY lastDate";
    $query = $conn->prepare($sql);
    $query->execute(array(':totalTestsPassed' => $totalTestsPassed));
    while($row = $query->fetch()){
    array_push($totalTestsPassedArray, $row['totalTestsPassed']);
    }
    $json_totalTestsPassedArray = json_encode($totalTestsPassedArray); //pack data into JSON object
    echo $json_totalTestsPassedArray; // for accessibility by AJAX
    foreach ($totalTestsPassedArray as $item){ //print out contents of array
    echo $item . '<br>';
    }

Я прочитал, что один из способов использования этих данных JSON — это использование метода $ .getJSON jQuery, и для его использования я должен «вывести» результаты моего объекта json_encoded. Я понимаю, что печатаю результаты дважды. echo $ json_totalTestsPassedArray для вышеупомянутой цели.

  1. Я включил путь этого файла PHP в мой файл HTML из # 1, используя <?php require '../file_name.php';?>
  2. Я пробовал несколько способов распаковки этого закодированного в JSON объекта, упакованного с данными из моей базы данных: использование запросов AJAX, создание нового массива в HTML, а затем переполнение его объектом JSON с использованием $ .getJSON, и некоторые другие вещи, которые люди предлагали сделать По разным документам в сети все встречалось с ошибками.

Может кто-нибудь сказать мне правильный способ сделать то, что я пытаюсь сделать? У меня есть файл PHP с массивом данных, и я хотел бы передать этот массив данных в набор данных для использования Chart.JS заполнить график, а затем нарисовать его на холсте и отобразить мои результаты.

var data = {
labels : ["January","February","March","April","May","June","July"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data : [DATA FROM MY PHP ARRAY IN ANOTHER FILE WOULD GO HERE...]
}

Снова, пожалуйста, прости мое невежество. Я старался изо всех сил, чтобы найти решение самостоятельно и был бы очень признателен за некоторые рекомендации. Я впервые использую эти инструменты. Я думал, что это будет так просто, как:

  • Запрос БД с использованием PHP-скрипта
  • Сохранить результаты в массив
  • Упаковать в объект JSON (целью является передача данных из PHP в файл JS)
  • Распакуйте объект JSON в JavaScript
  • Загрузить распакованные данные в мой массив JavaScript

1

Решение

Только в печати php json и установить заголовок content type в application/json тогда ваш XHR Ответ будет содержать объект javascript с вашими данными. Нет необходимости в разборе json.

0

Другие решения

Других решений пока нет …