Как я могу обновить fullcalendar после вставки строки в MySQL без обновления страницы? - PullRequest
0 голосов
/ 14 мая 2019

Моя проблема в том, что я делаю 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, потому что я могу вставить правильно, и если я обновляю страницу, я вижу новое событие, которое я добавил.

...