通过ajax调用Jquery完整日历事件

时间:2013-06-03 17:16:28

标签: php jquery jquery-plugins fullcalendar

我非常喜欢通过更新我的数据库条目来渲染事件。原来, 我已成功通过;

呈现事件

我有事件数组:

{title: 'Available', start: new Date(2013, m, 05, 09,50), end: new
 Date(2013, m, 05, 10,00), allDay: false},{title: 'Available', start:
 new Date(2013, m, 04, 00,20), end: new Date(2013, m, 04, 00,50),
 allDay: false}

将在calander中呈现:

events:[<?php echo $events?>]

到此为止,代码效果良好并根据需要呈现事件。

在prev之后,单击下一个按钮,我必须通过更新数据库来呈现事件。这是这样的:

 $('.fc-button-next span').live('click', function() {
        var calandar = $('#calandar');
         $.ajax({
            url: 'fetchEvents',
            dataType: 'JSON',
            type: 'POST',
            success: function(doc) {
                calandar.fullCalendar('removeEvents',event),
               calandar.fullCalendar( 'renderEvent',doc.events);
               calandar.fullCalendar('rerenderEvent',doc.events);
            }
        });
});

“fetchEvents”返回与之前相同的事件格式,但采用JSON格式,如:

"{title: 'Available', start: new Date(2013, m, 05, 09,50), end: new Date(2013, m, 05, 10,00), allDay: false}"

不知道如何在下一次点击事件中呈现JSON事件对象。那就是我必须通过ajax调用来呈现全新的事件。请建议。

解决:

而不是我建立的事件,我按照 Lukasz Koziara 的建议创建JSON事件,就像他的第一个建议一样,这样每次日历事件发生时,它都会获得{{1}获取事件。 JSON EVENT

eventSource

而不是事件,我在[{"title":"Available","start":"2013-06-06 05:20:00","end":"2013-06-06 05:50:00","allDay":false}] 中使用 ajax调用来获取此类eventSources 这看起来像:

JSON EVENTS.

这样,当第一次呈现 eventSources: [{ url: 'fetchEvents', type: 'POST' }] 或点击calandernextprevious按钮时,today它会自动提取指定的事件按calander

1 个答案:

答案 0 :(得分:1)

第一个建议:为什么不使用一种类型的事件源?例如,使用JSON提要 - 您可以通过GET参数startend获取事件范围,因此如果您更改月份或视图,则可以从数据库适当的事件发送。

第二个建议:如果您一定需要两种类型的事件来源,请尝试使用addEventSource / removeEventSource