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

nam*_*ess 3 javascript php ajax jquery fullcalendar

我有以下标记:

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

 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 );
        }
Run Code Online (Sandbox Code Playgroud)

所以活动现在在日历中.但是,当例如切换月份或重新加载页面时,所有数据都会丢失,当然,因为它没有保存.

现在的问题是:如何将事件直接保存到数据库中,然后加载它,那么我可以在哪里引入PHP代码,将事件保存到数据库...问题,为什么我问,是添加事件之间的网站永远不会重新加载,所以我无法检查GET或POST参数或类似的东西......我可以用AJAX做这个吗?如果有,怎么样?因为我对AJAX并不熟悉.

小智 6

您实际上可以将事件保存在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');
      }
    });
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在add_events.php中保存db中的详细信息

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

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

  6. 在日历功能中eventSources: eventSourceCall,添加此行以选择事件源.