我有以下标记:
我有一个fullcalendar的实例。当单击某一天(触发dayClick
-回调)时,将打开一个引导模式,用户可以在其中输入标题和开始/结束日期。单击ok后,提供的这些值将被添加到日历中。下面是相应的代码:
function addTitle(){ //having a button onClick="addTitle()"
var title = $('#add_date_title').val();
var startdate = $('#add_date_startdate').val();
var enddate = $('#add_date_enddate').val();
var end_split = enddate.split('-');
end_split[2]= parseInt(end_split[2])+parseInt("1");
enddate = end_split[0] + "-" + end_split[1] + "-" + end_split[2];
$('#add_date_title').val('');
$('#add_date_startdate').val('');
$('#add_date_enddate').val('');
$('#add_date_modal').modal('hide');
var myCalendar = $('#calendar');
var myEvent = {
title:title,
allDay: true,
start: startdate,
end: enddate
};
myCalendar.fullCalendar( 'renderEvent', myEvent );
}
所以事件现在在日历中。但是,当切换月份或重新加载页面时,所有数据当然都会丢失,因为它没有保存在任何地方。
现在的问题是:我如何将事件直接保存到数据库中,然后加载它,所以我可以在哪里引入php代码,将事件保存到数据库…问题,为什么我问,是添加事件之间的网站永远不会重新加载,所以我不能,检查GET或POST-Parameters或类似的东西…我可以用AJAX做这个吗?如果是,怎么做?因为我不太熟悉AJAX
您实际上可以将事件保存在DB中。
- 在你的模态触发器之后使用这个ajax。
-
在modal中获取title,startdate, end date等值,并将它们发送到以下ajax
$.ajax({ url: 'add_events.php', data: 'title='+ title+'&start='+ start2 +'&end='+ end2, type: "POST", success: function(json) { $( "#getReason" ).modal('hide'); $('#mydiv').hide(); $('body').removeClass('blockMask');//calendar.fullCalendar( 'refetchEvents'); $('#calendar').fullCalendar('refetchEvents'); } });
-
add_events.php保存db
-
在主页中使用此方法动态创建事件源
function eventSourceCall(){ eventSourceCall = [ { url: 'events.php?status=absent', backgroundColor: 'red', borderColor: 'white', textColor: 'white', rendering: 'background', cache: false }
-
在events.php中执行一个选择操作,将事件参数检索为json编码的对象并返回。
-
在日历函数
eventSources: eventSourceCall,
中增加这一行用于选择事件源