Как показать выборку событий из api в fullcalendar? - PullRequest
0 голосов
/ 04 марта 2019

код:

"use strict";
$('#calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay,listWeek'
    },
    defaultDate: new Date(),
    editable: true,
    droppable: true,
    drop: function() {
        if ($('#drop-remove').is(':checked')) {
            $(this).remove();
        }
    },
    eventLimit: true,
    events: function (start, end, timezone, callback) {
            $.ajax({
                type: "GET",
                url: "https://www.example.com/calender_api", 
                contentType: "application/json; charset=utf-8",  
                dataType: "json",
                success: function (doc) {
                    var events = [];
                    var obj = doc;
                    $(obj).each(function () {                          
                            events.push({
                            title: $(this).attr('title'),
                            start: $(this).attr('start')
                        });
                    });                     
                    if (callback) callback(events);
                }
            });
        }
});

calender_api.php:

[{start:"2019-03-06",title:"Conference"},{start:"2019-03-13",title:"Recruiting And Staffing"}]

Я создал календарь событий, который выглядит нормально, проблема в том, как я могу показать событие из calender_apiкак я уже упоминал выше?Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Похоже, что вы скопировали и вставили код из примера документации fullCalendar (https://fullcalendar.io/docs/events-function) почти строка за строкой, не пытаясь его понять. В нем четко упоминается, что код предназначен для перевода данных изОтвет XML в формат объекта JS, необходимый для fullCalendar. У вас нет такой проблемы, потому что ваш PHP уже возвращает JSON, который может быть проанализирован напрямую без преобразования.

Вы можете либо

a) немного измените ваш ajax-код, чтобы он просто возвращал данные непосредственно в fullCalendar:

success: function (doc) {
  callback(doc);
}

или

b) замените все это только на URL, поскольку он уже соответствуетк спецификации fullCalendar, показанной в этом подходе: https://fullcalendar.io/docs/events-json-feed

events: "https://www.example.com/calender_api"

Когда вы сделаете это, fullCalendar позаботится о запуске запроса AJAX и обработке ответа для вас.

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