2012-09-07 17 views
2

由於某種原因,我無法讓日曆在POST後重新渲染。一切順利:JQuery FullCalendar從ajax成功調用rerenderEvents的麻煩

$('#calendar').fullCalendar({ 
    ... 
    select: function (startDate, endDate) { 
     $.ajax({ 
      url: 'data.php', 
      type: "POST", 
      data: { 
       'start':startDate, 
       'end':endDate, 
       } 
      success: $('#calendar').fullCalendar('rerenderEvents') 
      } 
    ... 
    }); 

數據發佈成功,我的php腳本將新事件添加到數據庫就好了。唯一的問題是日曆不會被數據庫中的新數據重新渲染。

如果我刷新頁面(Firefox中的F5),則呈現新事件。顯然,我需要事件一旦被提交到數據庫就顯示出來。我不能指望我的用戶刷新頁面。

我這樣做成功statment的多少排列,如:

function() { 
    $('#calendar').fullCalendar('rerenderEvents'); 
} 

和(與我的PHP返回 '成功'),

function (data) { 
    if (data === 'success') $('#calendar').fullCalendar('renderEvents'); 
} 

但是,無論怎樣,新的事件添加到數據庫只顯示如果我刷新屏幕。任何人都可以建議我可能做錯了什麼?

回答

4

嘗試:

$('#calendar').fullCalendar("refetchEvents"); 

更新2013年1月31日。

這是有效的,因爲您迫使FC重新讀取事件源並再次呈現日曆。

但是,如果有時是蠻力解決方案,另一種方式來實現相同的(如果可能)爲做到這一點,在dayClick說,創建一個新的事件時:使用

  • 更新事件-DB $.ajax
  • 創建相應的新事件: yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);
+0

的 '蠻力解決方案' 的作品。但是你有沒有找到另一種更溫和的方式?我試着用eventSources(重新讀取/重新渲染)和事件,但日曆不更新...? – olefrank