Fullcalendar – 将事件保存在数据库中

我有以下标记:

我有一个fullcalendar实例。 当点击一天(触发dayClick )时,会打开一个bootstrap模式,用户可以在其中输入标题和开始/结束日期。 点击确定后,提供的这些值将被添加到日历中。 这是代码:

  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参数或类似的东西……我可以用AJAX做这个吗? 如果有,怎么样? 因为我对AJAX并不熟悉。

您实际上可以将事件保存在DB中。

  1. 在模态触发后使用此ajax。
  2. 以模态获取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'); } }); 
  3. 在add_events.php中保存db中的详细信息

  4. 在主页面中使用此方法动态创建事件源

     function eventSourceCall(){ eventSourceCall = [ { url: 'events.php?status=absent', backgroundColor: 'red', borderColor: 'white', textColor: 'white', rendering: 'background', cache: false } 
  5. 在events.php中执行select操作并将事件参数检索为json编码对象并返回它们。

  6. 在日历函数eventSources: eventSourceCall,添加此行以选择事件源。