Синтаксис источника событий json Full Calendar json - PullRequest
15 голосов
/ 21 марта 2012

Я пытаюсь использовать полный календарь для загрузки событий из источника json. JSON взят из URL, похожего на фид, «mysite.com/getEvents» (который возвращает объект события json). Прямо сейчас он возвращает объект

{"allDay":false,"end":1325577600,"start":1325577600}

Я пытался

$('#calendar').fullCalendar({
    events: 'mysite.com/getEvents'
});

Но ничего не происходит. Я знаю, что мой JSON отсутствует название и идентификатор. Итак, у нас есть 2 вопроса.

  1. Как правильно получить события из json url
  2. Как мне создать идентификатор для каждого созданного события?

Ответы [ 4 ]

17 голосов
/ 14 ноября 2014

Когда я использую синтаксис в принятом ответе, я получаю четыре события в календаре, а не два. Два дополнительных названия причудливо названы «12:44». По догадкам, я удалил строки «0» и «1», и теперь он работает отлично:

[
  {
    "title": "Ceramics",
    "id": "821",
    "start": "2014-11-13 09:00:00",
    "end": "2014-11-13 10:30:00"
  },
  {
    "title": "Zippy",
    "id": "822",
    "start": "2014-11-13 10:00:00",
    "end": "2014-11-13 11:30:00"
  }
]
16 голосов
/ 21 марта 2012

Вы должны попытаться сформировать JSON, чтобы он имел все обязательные поля. Например, для моего проекта достаточно следующего:

  • ID
  • название
  • 1008 * начать *
  • конец
  • AllDay

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

Пример вывода из сценария JSON:

[
    "0",
    {
        "allDay": "",
        "title": "Test event",
        "id": "821",
        "end": "2011-06-06 14:00:00",
        "start": "2011-06-06 06:00:00"
    },
    "1",
    {
        "allDay": "",
        "title": "Test event 2",
        "id": "822",
        "end": "2011-06-10 21:00:00",
        "start": "2011-06-10 16:00:00"
    }
]
4 голосов
/ 26 февраля 2016

Я знаю, что это старый пост, но другие могут его искать ...

Вам нужно заключить в скобки ответ json, похоже, он ожидает массив объектов:

[
    {
        "title":"foo1",
        "id":"123",
        "start":"2016-02-12T10:30:00",
        "end":"2016-02-12T12:30:00"
    },

    {
        "title":"foo2",
        "id":"456",
        "start":"2016-02-14T10:30:00",
        "end":"2016-02-14T12:30:00"
    }
]
0 голосов
/ 12 сентября 2018

Я пробовал fullcalendar с cakephp 3, у меня были похожие проблемы.если вы выбираете события через источник событий ajax.затем вам нужно будет сериализовать массив перед отправкой вам ajax-вызова.

  $this->set(array(
    'events' =>  $this->xyzCalls->getAllEvents(),
    '_serialize' => 'events'
));

, поэтому он будет выводиться правильно, как показано ниже:

 [
    {
        "id": 22,
        "title": "event1",
        "start": "2018-09-13T13:30:00+00:00",
        "end": "2018-09-13T14:00:00+00:00"
    }
]

Затем в полном календаре сделайтеисточники событий называют:

$('#calendar').fullCalendar({

  eventSources: [

    // your event source
    {
      url: '/myfeed.php',
      type: 'POST',
      data: {
        custom_param1: 'something',
        custom_param2: 'somethingelse'
      },
      error: function() {
        alert('there was an error while fetching events!');
      },
      color: 'yellow',   // a non-ajax option
      textColor: 'black' // a non-ajax option
    }

    // any other sources...

  ]

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