Intereting Posts
PHP – Удалить тег <span> из строки Извлеките 50 случайных записей из таблицы базы данных Mysql (большой набор данных) Практичность нескольких баз данных для каждого клиента по сравнению с одной базой данных как создать выбранную опцию из раскрывающегося списка? Неустранимая ошибка: использование $ this, если не в контексте контекста объяснения? Лучший способ проверки URL-адреса в PHP Угловая HTTP-почта для PHP и неопределенная Access-Control-Allow-Origin для расширения хрома не может отправлять почту, используя функцию php mail Непоследовательная сериализация сеанса на серверах Как я могу предотвратить html-объекты с PHP DOMDocument :: saveHTML ()? PHP: Как я могу захватить один файл из каталога без сканирования всего каталога? TCPDF – печать таблицы из mysql Замените preg_replace () e модификатор на preg_replace_callback Codeigniter – Ограничение прямого доступа к функциям контроллера из вызова URL

FullCalendar – источник JSON не работает, но напрямую использует данные JSON.

У меня есть FullCalendar правильно настроен на моей странице, и я пытаюсь заставить его прочитать источник json.

Мой источник json отлично работает, когда я обращаюсь к нему напрямую через URL-адрес, и если я копирую данные, выводимые на экран, и помещаю их непосредственно в события FullCalendar, это событие появляется.

Настройка событий на URL-адрес моего json-источника просто не работает. Я использовал панель Firebugs NET для проверки вызова, и он правильно находит источник JSON и извлекает правильные данные, но просто не показывает его в календаре.

Я установил id, title, allday (to true) start (как unix, так и yyyy-mm-dd) и закончил (несмотря на то, что это необязательно)

Есть идеи?

<script> $(document).ready(function() { $('#calendar').fullCalendar({ events: "eventsjson" // links to a controller in my symfony2 project. accessing cirectly gives correct json output }); }); </script> 

Данные, предоставленные источником json:

 {"id":1,"title":"Test Event","start":1331309234,"allDay":true} 

Вставка того, что ^^^ прямо в настройку событий, не вызывает проблем. (временная метка была создана функцией php time ())

Проблема заключается в естественном поведении PHP, чтобы НЕ включать скобки [], когда в объекте JSON имеется только 1 запись.

Если добавлена ​​секунда, скобки [] добавляются PHP, и плагин FullCalendar работает правильно.

Я считаю, что это вина FullCalendar в полной честности и подала его как ошибку с автором.

Я работал над этой проблемой в течение многих часов, пока не нашел решение.

В моем проекте я работаю с CakePHP v3 и FullCalendar v2, и оба они хорошо настроены. Если я задал события в режиме массива, он работал хорошо … но не в режиме URL. Та же проблема многих: FullCalendar получает скрипт (мое действие в моем контроллере) и принимает данные JSON, но любое событие отображается в календаре.

Ответ JSON, который я строю, действителен (я проверен на http://jsonlint.com/ ), но все события не отображаются в FullCalendar.

Это был мой ответ, который не сработал:

 { "events": [ { "id": "1", "title": "event1", "start": 1435336659, "end": 1436200659, "allday": false }, { "id": "2", "title": "event2", "start": "2015-07-06 11:37:39", "allday": false } ] } 

И я создаю этот ответ с помощью этого кода (в моем контроллере):

 $this->set('events', $event_array); $this->set('_serialize', ['events']); 

Проблема заключалась в том, как я установил переменные в представление JSON. Решение:

 $this->set(['events' => $event_array, '_serialize' => 'events']); 

Вы можете проверить это в классе Cake \ View \ JsonView. Этот код создает следующий ответ JSON:

 [ { "id": "1", "title": "event1", "start": 1435336961, "end": 1436200961, "allday": false }, { "id": "2", "title": "event2", "start": "2015-07-06 11:42:41", "allday": false } ] 

Вот и все … проблема заключается в внешнем ключевом слове {{} "и" events ", который недействителен для FullCalendar.

Надеюсь, эта работа для вас.