Получение данных за следующие/предыдущие месяцы

Я извлекаю свои данные Fullcalendar за просматриваемый месяц. Когда я нажимаю кнопки просмотра «Следующий/предыдущий месяц», он не выходит и не извлекает новые данные за новый месяц.

Как получить кнопки Next/Prev, чтобы сделать еще один вызов в БД и получить записи за этот месяц?


person Josh    schedule 11.08.2010    source источник


Ответы (3)


Определите обратный вызов событий, чтобы сделать запрос ajax к вашему API. См. документацию здесь. Вот пример интеграции с моим API, который использует начало и конец эпохи в качестве параметров получения при поиске.

$('#calendar').fullCalendar({
    // other options here...

    events: function(start, end, callback) {
        start = start.getTime()/1000;
        end = end.getTime()/1000;
        $.ajax({
            url: '/api/events/1/?start='+ start + '&end=' + end,
            dataType: 'json',
            success: function(doc) {
                var my_events = [];
                $.each(doc.person.events, function (index, elem) {
                   my_events.push({
                       title: elem.event.title,
                       start: elem.event.start,
                       end: elem.event.end,
                   });
                });
            callback(my_events);
          }
        });
    }
});

В моем реальном коде (это урезанная версия) я делаю больше с запросом ajax. Вы также можете упростить это, используя события фида json fullcalendar, которые будут передавать начальную и конечную эпохи даты получают параметры для вас. Например:

$('#calendar').fullCalendar({
    events: "/api/events/1/"
});

Оба этих решения будут выполнять вызовы API на ваш сервер, например http://yourwebsite.com/api/events/1/?start=123454444&end=12355324234, поэтому вам нужно настроить сервер для соответствующей обработки.

ПРИМЕЧАНИЕ. Если вам интересно, «1» в этих URL-адресах используется для идентификации идентификатора пользователя, для которого нужно получить события.

документы для fullcalendar замечательны, прочитайте их, а затем прочитайте еще раз.

person Sam Dolan    schedule 11.08.2010
comment
Я думаю, что это может быть решение, которое мне нужно. Откуда функция получает начальное, конечное и обратное значения? Мне нужно передать просмотренный месяц/год в файл JSON через fullcalendar. Я попробую и дам вам знать. Вы что, шутите, документация полного календаря УЖАСНА!!! Как насчет некоторых примеров или фрагментов кода в документации. Было бы неплохо увидеть, как реализован код, а не то, что у них есть. Как насчет примера JSON, который он показывает. Не показывает горячее форматирование времени вообще, только даты. Документации не хватает ИМХО. - person Josh; 12.08.2010
comment
Обратный вызов events передается в параметры, а затем вызывается с аргументами start, end, callback во внутренних компонентах полного календаря. Что касается документации, имейте в виду, что это один парень, который разработал, задокументировал и открыл исходный код. Это чертовски хорошо по сравнению с большинством других упакованных. Время форматирования очень четко объяснено в коде документации EventObject. А там, где документации не хватает, всегда можно найти исходный код. - person Sam Dolan; 12.08.2010

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

Если вы используете метод function или json, элемент управления fullcalendar попытается загрузить данные только для диапазона, который пользователь пытается просмотреть. Поэтому, когда пользователь переходит к следующему месяцу, события этого месяца будут извлечены из фида/функции.

person theycallmemorty    schedule 11.08.2010
comment
Эй, Морти, спасибо за помощь. Я пытаюсь избежать извлечения ВСЕХ данных из моего фида CF/JSON. Если кто-то нажимает на следующий/предыдущий месяц, я хочу, чтобы он извлек данные этого месяца из БД. Кажется, что много накладных расходов, чтобы вытащить ВСЕ из БД, когда есть вероятность, что не все нужно. (зачем тянуть данные за годы, если пользователь смотрит только на текущий месяц) - person Josh; 12.08.2010
comment
@Josh Полный календарь автоматически добавляет некоторые параметры к пути, который вы указываете для фида json. См. здесь: arshaw.com/fullcalendar/docs/event_data/events_json_feed Вы можете использовать параметры start и end для запроса к вашей базе данных только необходимых событий! - person theycallmemorty; 12.08.2010