选择后通过ajax发送fullcalendar开始和结束日期
问题描述:
我需要通过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调用不会触发自身。请帮忙。
答
这似乎为我工作。
请注意,开始和结束都是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生产什么。
答
在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");
非常感谢。我将这些“奇怪的生物”塑造成了字符串,并且它实现了诀窍。 – 2014-10-07 06:37:53