2014-06-26 8 views
5

Używam wybieranego połączenia zwrotnego podczas dodawania zdarzeń. Poniższy kod działał w wersji 1, ale otrzymuję Uncaught TypeError w wersji 2. Po usunięciu kodu ajax nie ma błędu, ale oczywiście muszę dodać nowe zdarzenie do bazy danych.Błąd FullCalendar v2: Uncaught TypeError: Nie można odczytać właściwości "miesiąc" niezdefiniowanej

select: function(start, end, jsEvent, view) { 
    var title = 'Available'; 
    var eventData; 
    eventData = { 
    title: title, 
    start: start 
    }; 
    $.ajax({ 
    type : 'POST', 
    url : 'add-event.php', 
    data: eventData, 
    success : function(data){ 
     $('#calendar').fullCalendar('renderEvent', { 
     id: data.id, 
     title: data.title, 
     start: data.start, 
     start: data.end 
     }, true); 
     $('#calendar').fullCalendar('unselect'); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
    } 
    }); 


}, 

Odpowiedz

0

Skrypt "kalendarz" używany w obu wersjach jest inny.

Jeśli obserwować, połączenie wykonane do pliku php w V1 jest:

get-events?start=1362076200000&end=1364754600000&_=1403859868502 

a połączenie wykonane przez V2:

get-events.php?start=2014-06-01&end=2014-07-13&_=1403859868502 

nadzieję, że pomoże Ci trochę.

+1

Prawda, ale jeśli wyślesz alert lub konsolę.log, czas rozpoczęcia korzystania z opcji select, jest w formacie znacznika javascript podobnego do 1362076200000. Problem, który mam, jest taki, że błąd występuje, gdy używam $ .ajax. Wyjmij tę część i nie popełnij błędu. Czemu? – mjim

+0

Nie mogę nic na ten temat powiedzieć, ponieważ nie stosowałem tej metody. Zamiast tego spróbuj użyć "$ .post". Sprawdź, czy to może pomóc. – user3129207

+0

proszę spojrzeć na to http://stackoverflow.com/questions/24594685/calling-jquery-ajax-or-jquery-post-from-inside-of-the-event-callbacks-res?answertab = aktywny # tab-top – vipin

10

Spróbuj wysłać startDate i endDate w formacie do tego celu użyj format().

select: function(start, end, jsEvent, view) { 
    var title = 'Available'; 
    var eventData; 
    eventData = { 
    title: title, 
    start: start 
    }; 
    $.ajax({ 
    type : 'POST', 
    url : 'add-event.php', 
    data: eventData, 
    success : function(data){ 
     $('#calendar').fullCalendar('renderEvent', { 
     id: data.id, 
     title: data.title, 
     start: data.start.format(), 
     end: data.end.format() 
     }, true); 
     $('#calendar').fullCalendar('unselect'); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
    } 
    }); 


}, 

Można odwołać się do Momentjs

+0

to powinno być zaakceptowane jako odpowiedź! – lewis4u

0

natknąłem to i zauważyłem, że v2 wydaje się ustawić kilka dodatkowych parametrów _start i _END w obiekcie zdarzenia. Zauważyłem, że muszę to zrobić: start = _start.format(), aby nie dopuścić do momentu serializacji. Nie jestem pewien, czy jest to optymalne rozwiązanie, ale może ci to pomoże.

1

Proszę sprawdzić dane zdarzenia. Atrybut źródłowy zdarzenia musi mieć wartość zerową lub nie być wypełniony. TAK przed wywołaniem

$ ("# kalendarz"). FullCalendar ("renderEvent", zdarzenie);

Musisz się upewnić, że wymagany atrybut zdarzenia fullcalendar musi zostać wypełniony. Oto link dla wymaganego i opcjonalnego obiektu fieldfor zdarzenia.

http://fullcalendar.io/docs/event_data/Event_Object/

0
body .fc { 
    overflow:auto; 
} 

Znalezione na github, pracował dla mnie!

Powiązane problemy