在mysql中插入行后如何刷新fullcalendar,而无需刷新页面?

时间:2019-05-14 11:21:22

标签: javascript fullcalendar fullcalendar-4

我的问题是我做了一个ajax请求将事件插入mysql,所以如果一切正常,我想刷新(刷新事件)fullcalendar以查看没有刷新页面的新插入。此外,我正在使用TimeGrid View和该插件的第4版。

我测试过:

calendar.refetch();
calendar.refetchEvents();
$('calendar').fullcalendar('rerenderEvents');
$('calendar').fullcalendar('refetchEvents');

但这至少在v4中不起作用。

日历代码:

var calendar;
/* Calendario JS */
document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');

    calendar = new FullCalendar.Calendar(calendarEl, {
      plugins: [ 'dayGrid', 'timeGrid', 'bootstrap' ],
      defaultView: 'timeGridWeek',
      themeSystem: 'bootstrap',
      locale: 'es',
      minTime: "07:00:00",
      maxTime: "23:00:00",
      header: {
          left: 'title', //today, prev, next
          center: 'BtnAñadirReserva',
          right: 'today, prev,next' //month, basicWeek, basicDay, gendaWeek, agendaDay
      },
      customButtons: {
          BtnAñadirReserva: {
              text: "Añadir Reserva",
              bootstrapFontAwesome: "fa-calendar-plus Añadir Reserva",
              click: function(){
                showNoti();
              }
          }
      },
      events: {
        url: url_controller,
        method: 'post',
        extraParams: {
          accio: "getReservas"
        },
        failure: function() {
          alert('Hubo un error recorriendo las reservas!');
        },
        color: 'blue',   // a non-ajax option
        textColor: 'white' // a non-ajax option
      },
      eventClick: function(calEvent, jsEvent, view) {
        getInfoByID(calEvent.event.id);
      }
    });

    calendar.render();
});
$.ajax({
    url: url_controller,
    type: 'post',
    data: {
         accio: "insertReserva",
         params: json
     },
     beforeSend: function () {},
     success: function(result){
        result = JSON.parse(result);
        console.log(result); 
        if(status == true){
           $('#calendar').fullCalendar('rerenderEvents');
           //calendar.refetch();
           //calendar.refetchEvents();
           //$('calendar').fullcalendar('rerenderEvents');
           //$('calendar').fullcalendar('refetchEvents');
        } else {
           /* Error sql php */
        }
      },
     error:function (xhr, ajaxOptions, thrownError) {
        /* Error ajax petition */
     }
});

如果我使用.fullcalendar,但使用.refetch则在控制台/网络中未显示任何错误,它表示该功能不起作用。 这不是php问题,因为我可以正确插入,并且如果刷新页面,我可以看到我添加的新事件。

0 个答案:

没有答案