2010-11-18 5 views
0

Ich benutze PHP, um mit JQuery und Javascript zu arbeiten und Vollkalender zu integrieren.Rückkehr von event.Click, event.Resize und eventDrop bewirkt, dass überall NaN erscheint, wenn ich zu einer anderen Ansicht oder Kalenderseite gehe

Ich freue mich über den Kalender mit Ereignissen über Monate und Wochen. Gerne erstelle und editiere ich auch Ereignisse im Vollkalender mit event.Click, event.Resize und eventDrop.

Wenn ich jedoch von der Bearbeitung zurückkomme und dann versuche, den Monat/die Woche usw. zu ändern, bekomme ich NaN überall, wo ich Tage und so weiter erwarte. Die Aktualisierung erfolgt auf einem überlagerten div, das einen iframe enthält. Das Skript im iframe ruft eine JavaScript-Funktion auf, um das div zu schließen und aktualisiert den Kalender mit reFetchEvents. Die ursprüngliche Seite wird erneut angezeigt, aber wenn ich zu einem anderen Teil des Kalenders navigiere, sehe ich den beschriebenen Effekt.

Relevante Snippet von der Kalenderanzeige Skript

function close_upd(){ 
/* called by update script in iframe after user hits submit/cancel */ 
    $("#update").dialog('close'); 
    $("#calendar").fullCalendar('refetchEvents'); 
} 
$(document).ready(function(){ 
    $('#calendar').fullCalendar({ 
     theme: true, 
     defaultView: '<?=$view;?>', 
     firstHour: 8, 
     header: { 
      left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
     }, 
     selectable: true, 
     selectHelper: true, 
     select: function(startdate, enddate, allDay, jsEvent, view) { 
     window.scrollTo(0,0); 
     var sd = Date.parse(startdate); 
     var ed = Date.parse(enddate); 
     $("#update").html("CALLS IFRAME"); 
     $("#update").dialog('open'); 
     }, 
     editable: true, 
     eventClick: function(calEvent, jsEvent, view) { 
     window.scrollTo(0,0); 
     var sd = Date.parse(calEvent.start); 
     var ed = Date.parse(calEvent.end); 
     $("#update").html("CALLS IFRAME"); 
     $("#update").dialog('open'); 
     }, 
     eventResize: function(calEvent,dayDelta,minuteDelta,revetFunc) { 
     var sd = Date.parse(calEvent.start); 
     var ed = Date.parse(calEvent.end); 
     $.post('./event_update2.php',{'allday':'false', 'event':calEvent.id, 'start':sd,'end':ed}, function(response){ 
      if(response.length > 0){ 
       alert(response); 
       revertFunc(); 
      } 
     }); 
     }, 
     eventDrop: function(calEvent,dayDelta,minuteDelta,allDay,revetFunc) { 
     var sd = Date.parse(calEvent.start); 
     var ed = Date.parse(calEvent.end); 
     $.post('./event_update2.php',{'allday':allDay, 'event':calEvent.id, 'start':sd, 'end':ed}, function(response){ 
      if(response.length > 0){ 
       alert(response); 
       revertFunc(); 
      } 
     }); 
     }, 
     eventMouseover: function(event, jsEvent, view) { 
     var showdatea = $.fullCalendar.formatDate(event.start,"dS MMM yyyy"); 
     var showdateb = $.fullCalendar.formatDate(event.start,"hh:mm"); 
     showToolTip(jsEvent,event.title+" "+showdatea+" Starts At "+showdateb+" "+event.desc); 
     }, 
     eventMouseout: function(event, jsEvent, view) { 
     hideToolTip(); 
     }, 
     events: './event_find.php?from=PP' 
    }); 
}); 

Antwort

0

Was bedeutet Firebug Sie sagen? Wird alles korrekt vom Server abgerufen? Rendern Sie den Kalender zum ersten Mal, wenn Sie überprüfen können, was im GET von event_find.php?from=PP zurückgegeben wurde. Das zweite Mal, nach dem Schließen des Editier-Overlays, antwortet der Server mit den gleichen GET-Daten (plus die neue Edit-Änderung)?

Danach, wenn Sie prev/next klicken, lädt es jetzt andere Daten in den GETs?

Dies zu wissen wird ein guter Anfang sein zu verstehen, was vor sich geht.