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

Posted

技术标签:

【中文标题】通过ajax调用的Jquery完整日历事件【英文标题】:Jquery Full Calendar Events by ajax call 【发布时间】:2013-05-29 22:16:21 【问题描述】:

我非常热衷于通过更新我的数据库条目来呈现事件。原来, 我已经成功渲染了事件;

我的事件数组为:

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

将通过以下方式在日历中呈现:

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

到目前为止,代码运行良好并根据需要呈现事件。

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

 $('.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 调用呈现全新的事件。请提出建议。

已解决:

我创建 JSON 事件,而不是我创建的事件,正如 Lukasz Koziara 在他的第一个建议中所建议的那样,每次日历事件发生时,它都会获取 eventSource 以获取事件。 JSON 事件

["title":"Available","start":"2013-06-06 05:20:00","end":"2013-06-06 05:50:00","allDay":false]

我使用eventSources 进行了ajax 调用,而不是事件,以获得这种类型的JSON EVENTS. 这看起来像:

 eventSources: [
                    url: 'fetchEvents',
                    type: 'POST'
                ]

因此,当calander 第一次呈现或nextprevioustoday 按钮被点击时,calander 它会自行获取eventSources. 指定的事件

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

是的,我尝试按照您的第一个建议作为相同的 eventSources:[url: 'fetchEvents'] 这样做。但事件并未按照指定的 json 格式呈现。 首先检查你的 fetchEvents 函数是否被全日历命中。如果没有,请将您的函数指向不带“url”参数的函数。 感谢您的建议。我已根据您的想法编辑了我想要的内容。我将检查您的答案以获取您的建议。 如果我不明白从服务器获取事件的一件事是服务器代码在 PHP/SQL 查询方面的外观。上面的代码仅指客户端代码。

以上是关于通过ajax调用的Jquery完整日历事件的主要内容,如果未能解决你的问题,请参考以下文章

JQuery完整日历,如何更改视图

每年将生日事件添加到 jQuery 完整日历中

Jquery完整日历json事件源语法

使用Ajax在完整日历上显示数据不显示记录

jQuery完整日历 - 如何防止用户在非工作时间添加事件?

jquery完整日历:为前端的每个事件设置不同的颜色