由于某些原因,我无法在POST后重新发送日历。至此一切顺利:
$('#calendar').fullCalendar({
...
select: function (startDate, endDate) {
$.ajax({
url: 'data.php',
type: "POST",
data: {
'start':startDate,
'end':endDate,
}
success: $('#calendar').fullCalendar('rerenderEvents')
}
...
});
数据发布成功,我的php脚本将新事件添加到数据库中,效果很好。唯一的问题是没有使用数据库中的新数据重新绘制日历。
如果我刷新页面(Firefox中的F5),则会呈现新事件。显然,我需要事件在提交到数据库后立即显示。我不能指望我的用户刷新页面。
我对这个成功的统计做了很多排列,例如:
function () {
$('#calendar').fullCalendar('rerenderEvents');
}
和(我的php返回"成功"),
function (data) {
if (data === 'success') $('#calendar').fullCalendar('renderEvents');
}
然而,不管怎样,添加到数据库中的新事件只有在我刷新屏幕时才会显示。有人能告诉我可能做错了什么吗?
尝试:
$('#calendar').fullCalendar("refetchEvents");
更新2013-01-31。
这是因为您正在强制FC重新读取事件源并再次呈现日历。
然而,如果这有时是一种暴力解决方案,那么(在可能的情况下)实现同样效果的另一种方法就是这样做,比如在创建新事件时使用dayClick
:
- 使用
$.ajax
更新事件数据库 - 创建相应的新事件:
yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);