2015-05-20 215 views
0

我想更新我的數據庫與我拖動到新的一天的事件的更新的開始日期。我有一個保存按鈕,運行'clientEvents'方法返回所有事件插入/更新到數據庫。我的問題是當一個事件被拖到新的一天時返回正確的事件開始日期。如何更新事件啓動fullCalendar

我這樣做,到目前爲止更新事件數據:

$('#calendar').fullCalendar({ 
    eventDrop: function(event, delta, element) { 

     event.title = "NEW TITLE!"; 
     event.start = event.start.format(); 
     event.color = "blue"; 

     console.log(event.start.format()); 
     console.log(event.start); 
     console.log(event.start._i); 
     console.log(event.title); 
     console.log(event.color); 

     $('#calendar').fullCalendar('updateEvent', event); //update the event data 
    } 
}) 

和我的函數返回的所有事件:

function saveEvents() { 

    //get events array 
    var events = $('#calendar').fullCalendar('clientEvents'); 
    console.log(events); 
} 

但是,使用此代碼,標題和顏色更新很好,但開始日期不會更新。使用console.log,新的標題和顏色會正確返回,但開始日期是原始日期,而不是事件被拖到的新日期。在我的saveEvents函數中返回的事件數據相同:新的標題和顏色是正確的,但不是開始日期。

奇怪的是,在記錄event.start的3種方式中,只有event.start.format()顯示了正確的新日期。如何獲取保存的新日期,以便在調用「clientEvents」時返回正確的新數據?

回答

1

你能解釋一下「原始日期」與「新日期」應該是什麼意思嗎?由於您只修改格式,因此您似乎沒有更新開始日期。

+0

使用clientEvents功能,將返回所有事件數據爲日曆上的每個事件。開始日期,結束日期,顏色等。當我將事件拖放到日曆上的新日期,然後再次運行該功能時,開始和結束日期/時間尚未更新到我吸毒的新日期事件到。 如上所示,使用eventDrop時,我更新事件顏色和開始日期,當它是藥物並在新的日期下降。在調用clientEvents時,會反映新的顏色,但日期不是。 –

+0

嗨,只是給你一個領導。將來您不應該將這種問題作爲答案提供給原始文章。相反,你應該在他們下面評論,直到你覺得你有足夠的信息給他們一個有用的答案。歡迎來到stackoverflow! – Chackle

+0

對不起,在@Chackle答覆中提供的信息,由於我的信譽低,我無法評論原始帖子...回到問題:您使用的是哪個版本的FullCalendar?在記錄event.start的3種方式中,記錄舊日期的方法有兩種: –

0

我對改變開始和結束日期有同樣的問題!但我最近發現改變它的好方法!對我而言,更改開始日期值可以通過event.start._d完成!但是當你更新你需要將你的更新時間轉換成date object!所以你可以使用toDate() of momentnew Date()

event.start._d = new Date(event.start.format()); 
event.start._d = moment(event.start.format()).toDate(); // with moment 
0

創建開始的一個時間副本,格式化並附加到新事件。在fullCalendar的初始化過程中,將您的ajax調用放入eventDrop回調中。

$('#calendar').fullCalendar({ 
    eventDrop: function(event, delta, element) { 
      var event_format = event; 
      event_format.start = moment(event.start).format(); 
      $.ajax({ 
       url : "script.php", 
       data : event=JSON.stringify(event_format), 
       type : "POST" 
      }); 

} 
}) 

PHP:使用PHP和MySQL實例解決方案

<?php 
    $event = json_decode($_POST['event']); 
    $query = "UPDATE x SET start = '$event->start'"; 
    mysql_query($query) or die ($query); 
?> 

做的結束日期同樣會是一個好主意:)

相關問題