2014-10-06 66 views
0

我需要通過ajax將開始和結束日期發送到服務器以將它們保存到數據庫。我試圖通過ajax調用取消選擇方法不觸發後執行ajax調用。我不確定問題是什麼。請幫忙。選擇後通過ajax發送fullcalendar開始和結束日期

$('#calendar').fullCalendar({ 
header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: '' 
}, 
defaultDate: '<?php echo date("Y-m-d") ?>', 
defaultView: 'agendaWeek', 
selectable: true, 
selectHelper: true, 
select: function(start, end) { 
    //var title = prompt('Event Title:'); 
    var title = $("#gym_mbr_name").val(); 
    var eventData; 
    if (title) { 
     eventData = { title: title, start: start, end: end }; 
     var calendar_datetime = $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true     
    } 

    $('#calendar').fullCalendar('unselect'); 

    $.ajax({                        
     url: '<?php echo BASE_URL; ?>ajax/add_membership_schedule.php', 
     type: 'POST', 
     data: { start: start, end: end }, 
     beforeSend: function(){ }, 
     complete: function(){ } 
    }).done(function(resp){ 
     alert(resp); 
    }); 

}, 
editable: true, 
eventLimit: true, // allow "more" link when too many events 
events: [] 

});

當我嘗試提醒resp時,它不會給出任何輸出,實際上ajax調用不會觸發自身。請幫忙。

回答

1

這似乎爲我工作。

請注意,開始和結束都是FCMoments(來自Moments的奇怪生物),並且您希望在將它們用於您的ajax調用之前將它們轉換爲字符串或其他東西。

而且,嘗試使用「成功」,而不是「完成」。

在這裏看到一個例子:http://jsfiddle.net/3E8nk/507/

$("#calendar").fullCalendar({ 
    header: { 
     left: "prev,next today", 
     center: "title", 
     right: "month,agendaWeek,agendaDay" 
    }, 
    defaultDate: "2014-06-12", 
    editable: true, 
    selectable: true, 
    selectHelper: true, 
    select: function(a, b) { 
     alert("selected from: " + a.format() + ", to: " + b.format()); 
     $("#calendar").fullCalendar("unselect"); 
     $.ajax({ 
      url: "http://www.google.com", 
      type: "GET", 
      data: { 
       q: "test" 
      }, 
      dataType: "html", 
      success: function(a) { 
       alert("Data: " + a); 
      }, 
      error: function(a, b) { 
       alert("Request: " + JSON.stringify(a)); 
      } 
     }); 
    }, 
    unselect: function() { 
     alert("unseleted"); 
    }, 
    events: [ { 
     title: "All Day Event", 
     start: "2014-06-01" 
    }, { 
     title: "Long Event", 
     start: "2014-06-07", 
     end: "2014-06-10" 
    }, { 
     id: 999, 
     title: "Repeating Event", 
     start: "2014-06-09T16:00:00" 
    }, { 
     id: 999, 
     title: "Repeating Event", 
     start: "2014-06-16T16:00:00" 
    }, { 
     title: "Meeting", 
     start: "2014-06-12T10:30:00", 
     end: "2014-06-12T12:30:00" 
    }, { 
     title: "Lunch", 
     start: "2014-06-12T12:00:00" 
    }, { 
     title: "Birthday Party", 
     start: "2014-06-13T07:00:00" 
    }, { 
     title: "Click for Google", 
     url: "http://google.com/", 
     start: "2014-06-28" 
    } ] 
}); 

如果看着不幫助,然後嘗試張貼的PHP生產什麼。

+0

非常感謝。我將這些「奇怪的生物」塑造成了字符串,並且它實現了訣竅。 – 2014-10-07 06:37:53

0

在FullCalendar的最新版本中,我們必須在yyyy-mm-dd或相同的格式上捕捉MOMENT DATE格式。所以,對於我這個代碼工作:

start = $.fullCalendar.moment(start).format("YYYY-MM-DD HH:mm:ss"); 
end = $.fullCalendar.moment(end).format("YYYY-MM-DD HH:mm:ss"); 
相關問題