@samuser
programmer

Как из php массива преобразовать Json?

Как данные отобразить правильно

выводил данные из бд и передал в шаблон
в теле шаблона писал скрипт
$(document).ready(function() {
        $('#calendar').fullCalendar({
            events : [
                <?php
//	            $datesquerysss = json_encode($datesquerysss); // не работает
	            	foreach($datesquerysss as $task){
	            	title : '$task->start_time';  //  json_encode($task->start_time) еше один вариант не работает
	            	start : '$task->stop_time';	            
	            	}
                ?>
            ]
        })
    });

как правильно парсить в Json
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@Yan-s
Смешались в кучу кони, люди...

В контроллере переберите массив в новую структуру которая соответствует требуемому формату, типа:
$events = [
  'events' => [
    ['title' => '...', 'start ' => '...'],
    ['title' => '...', 'start ' => '...'],
    ['title' => '...', 'start ' => '...'],
    ['title' => '...', 'start ' => '...'],
  ]
];

во вьюхе пропустите результат через json_encode, получится:
{
  "events": [
    {
      "title": "...",
      "start ": "..."
    },
    {
      "title": "...",
      "start ": "..."
    },
    {
      "title": "...",
      "start ": "..."
    },
    {
      "title": "...",
      "start ": "..."
    }
  ]
}


и выведите с помощью echo или соответствующей конструкции вашего шаблонизатора:
var caledarEvents = <?php echo json_encode($events); ?>;
$(document).ready(function() {
        $('#calendar').fullCalendar(caledarEvents)
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kalombyr
@Kalombyr
По-моему вам стоит начать изучение с основ.
Вы смешали всё в кучу. Сначала зачем-то преобразуете в Json строку, затем пытаетесь его в цикле распарсить...
Если нужны данные из php в javascript, то можно например так:
index.html
<?php
    $datesquerysss = ....
?>
<script>
   var jsonstring = ' <?php  echo json_encode($datesquerysss);  ?> ';
    ...... 
    var jsonobject =  JSON.parse(jsonstring );
   console.log(jsonobject);
</script>

В json можно вообще не преобразовывать, а сразу собрать js объект.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы