0

我的问题是我做了一个 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 问题,因为我可以正确插入,如果我刷新页面,我可以看到我添加的新事件。

4

0 回答 0