Дата начала прохождения FullCalendar - PullRequest
0 голосов
/ 29 марта 2012

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

Кажется, это было бы легко, но я делаю что-то не так.

$ ( '# календарь') fullCalendar (Options). $ ('# calendar'). fullCalendar ('gotoDate', '2012-10-21');

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Образец на основе документации http://arshaw.com/fullcalendar/docs/current_date/gotoDate/

Помните, что месяц основан на 0, поэтому 10 означает ноябрь.

$(document).ready(function () {

    var calendar = $('#calendar').fullCalendar({
        events:[
            { title:'All Day Event', start:new Date(2012, 10, 20)},
            { title:'Long Event', start:new Date(2012, 10, 21), end:new Date(2012, 10, 22)}
        ]
    });

    $('#calendar').fullCalendar('gotoDate', 2012, 10, 21);

});
1 голос
/ 11 июня 2013

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

При использовании подхода, описанного выше, я заметил, что консоль Firebug отображает два запроса данных AJAX, выполняемых одновременно, один для представления, связанного с текущей датой, и один для представления, связанного с указанным gotoDate.

С точки зрения пользователя не возникает никаких дополнительных задержек, и календарь отображает запрошенное представление с самого начала. Однако обратные вызовы «loading» будут вызываться несколько раз, что может вызвать странное поведение в определенных обстоятельствах. Также могут быть и другие нежелательные результаты, связанные с лишним запросом AJAX на текущую дату.

Мне удалось избежать ненужного запроса AJAX, инициализировав календарь без источника события, затем переместившись на нужную дату, как показано выше в Biesior, и затем добавив источник события. Последовательность показана ниже. Я удалил некоторые несвязанные параметры и обратные вызовы FullCalendar, чтобы сделать его кратким. Есть несколько дополнительных параметров AJAX и немного PHP, но важно отметить, когда указан источник события.

Исходный код приводит к двум одновременным запросам AJAX:

$('#calendar').fullCalendar({
  events: {
    url:'/Services/GetEvents.php',
    type: 'POST',
    data: {
        lat: <?=$venLatitude?>,
        lon: <?=$venLongitude?>,
        userID: <?=$userID?>,
        distance: <?=$distance?>
    }
  }
})
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);

Эта корректировка приводит только к желаемому запросу AJAX:

        $('#calendar').fullCalendar();
        $('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
        $('#calendar').fullCalendar('addEventSource', {
                url:'/Services/GetEvents.php',
                type: 'POST',
                data: {
                    lat: <?=$venLatitude?>,
                    lon: <?=$venLongitude?>,
                    userID: <?=$userID?>,
                    distance: <?=$distance?>
                }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...