Как вы передаете некоторое время l oop из PHP переменных в JS скрипт как JSON компоненты? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь заполнить календарь JS (плагин fullCalendar) событиями. У меня есть соответствующий PHP код, извлекающий информацию из моей базы данных с помощью SQL:

$item_results = $mysqli->query($sql_items);
$item_row = $item_results->fetch_assoc();

Я поместил этот вывод в while-l oop, чтобы переписать все отдельные результаты в JSON формат:

$events = '';

while ( $item_row = $item_results->fetch_assoc() ) {
    $events .= '{title: \''. $item_row['item'] . '\', start: \'' . $item_row['expiration_date'];
    $events .= '\', color: \'' . $color . '\'' . '}, ';
  }

Однако, когда я вставляю '<?php echo $events; ?>' в мой тег сценария JS ниже моего PHP кода, он ничего не выводит в календарь.

var Calendar = new FullCalendar.Calendar(CalendarEl, {
  events: [
   // {
   //   title: 'conference',
   //   start: '2020-02-11'
   // }
   '<?php echo $events; ?>';
 ]});

Лучше всего начать сначала и разбить переменные PHP на массивы, чтобы я мог использовать json_encode()? В таком случае, как бы я справился с остальными событиями?

1 Ответ

1 голос
/ 06 апреля 2020

Почему бы сначала не использовать массив, а затем использовать json_encode

$events = [];

while ( $item_row = $item_results->fetch_assoc() ) {
    $events[] = ["title" => $item_row['item'], "start" => $item_row['expiration_date'], "color" => $color];
  }

$events = json_encode($events,JSON_PRETTY_PRINT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...