我实现了Fullcalendar,它显示了mysql表中的事件(title + datetime),并通过点击日历中的一天来插入新事件。
问题是它只在当天插入事件,即使用户点击了将来的某个日期或月份。我希望用户能够以与现在相同的方式插入未来事件。
Fullcalendar脚本,显示事件(events.php)并通过点击发送此信息的日期(标题)插入" add_event.php"
$(document).ready(function() {
var calendar = $('#calendar').fullCalendar({
editable: true,
events: "http://localhost/test-fullcalendar/php/eventos.php",
lang: "es",
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
var title = prompt('Evento a insertar:');
if (title) {
start = moment(event.start).format('YYYY-MM-DD HH:mm:ss');
end = moment(event.end).format('YYYY-MM-DD HH:mm:ss');
$.ajax({
url: 'php/add_evento.php',
type: 'POST',
data: {title: title, start: start, end: end},
success: function(json) {
alert("Evento insertado");
console.log("Enviando: ", title, start, end);
}
});
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true
);
}
calendar.fullCalendar('unselect');
}
});
});
答案 0 :(得分:2)
您遇到的问题是您使用不存在的日期(event.start
)覆盖所选日期,因此默认为现在。当您将事件添加到日历时,它将使用覆盖的值而不是传递给select
回调的值。
在:
start = moment(event.start).format('YYYY-MM-DD HH:mm:ss');
end = moment(event.end).format('YYYY-MM-DD HH:mm:ss');
$.ajax({
url: 'php/add_evento.php',
type: 'POST',
data: {title: title, start: start, end: end},
success: function(json) {
alert("Evento insertado");
console.log("Enviando: ", title, start, end);
}
});
后:
start_ajax = moment(start).format('YYYY-MM-DD HH:mm:ss');
end_ajax = moment(end).format('YYYY-MM-DD HH:mm:ss');
$.ajax({
url: 'php/add_evento.php',
type: 'POST',
data: {title: title, start: start_ajax, end: end_ajax},
success: function(json) {
alert("Evento insertado");
console.log("Enviando: ", title, start_ajax, end_ajax);
}
});
答案 1 :(得分:0)
您可以使用
获取当前所选日期$("#calendar").fullCalendar('getDate');
它会返回一个moment.js日期对象