2012-04-10 4 views
6

Ich richte eine App mit FullCalendar (http://arshaw.com/fullcalendar/) ein, die es dem Benutzer ermöglicht, Client-Planungsinformationen anzuzeigen und Clients über eine Verwaltungsschnittstelle zu planen.Wie erhalte ich FullCalendar, um Informationen aus meinem JSON-Feed anzuzeigen?

Ich möchte eine MySQL-Datenbank verwenden, um ein Array zu füllen, und dann dieses Array in Form eines JSON-Feeds an FullCalendar auf einer HTML-Seite übergeben. Im Idealfall würden die Client-Informationen dann auf der HTML-Seite angezeigt. Auch wenn mein JSON-Feed übergeben wird, gibt es keine Ereignisse auf meinem FullCalendar.

Beispiel JSON-Feed übergeben wird:

[{"title":"Watson","start":"1333976400","end":"1333980000","allDay":false}] 

ich diese Sprache recht neu bin und ich wäre nicht überrascht, wenn diese Fehler einfach entpuppen.

Ich würde jede Hilfe oder Einsicht, dass diese Ereignisse auftauchen, sehr zu schätzen wissen. Wenn ich ein Array manuell in FullCalendar füttere, werden zwar die Ereignisse angezeigt, aber bis jetzt hat mein JSON-Feed keine Informationen angezeigt.

Danke

Als Referenz: HTML:

 $(document).ready(function() {  
     $('#calendar').fullCalendar({ 
      events: '/json-events.php' 
     });  
}); 

PHP:

 while ($record = mysql_fetch_array($result)) { 
     $event_array[] = array(
      'id' => $record['id'], 
      'title' => $record['title'], 
      'start' => $record['start_date'], 
      'end' => $record['end_date'], 
      'allDay' => false 
     ); 
    } 

echo json_encode($event_array); 

Antwort

7

Also das Problem, für die Sucher, die nach mir kommen, war, dass meine PHP-Datei HTML-Kopf und Body-Tags hatte. Ich bin ein PHP-Noob und so wusste ich nicht, dass es nicht funktionieren würde. Damit FullCalendar den JSON-Feed anzeigen kann, darf NUR PHP-Code, kein HTML verwendet werden. JSONLint.com war von unschätzbarem Wert, um das herauszufinden.

1
events: '/json-events.php' 

sollte entweder

events: './json-events.php' 
sein

oder

events: 'json-events.php' 

Lassen Sie mich wissen, ob das hilft ...

EDIT

Ich habe auch bemerkt, dass in der Json, dass Ihr erhalten gibt es keine ID in der Zeile. Zwischen der Benennung Ihrer ID in der Datenbank und dem Namen, den Sie im Array verwenden, kann etwas passieren. Überprüfen Sie es und sehen Sie, ob das so ist, denn das ist eine der Eigenschaften, die benötigt werden, um das Ereignis zu bestehen.

EDIT

Versuchen Sie die [] von $ event_array [] und sehen, was passiert, zu entfernen ... Wenn das als nicht funktioniert Ich bin stumpped ...leider

+0

Sieht so aus, als ob diese beiden Optionen nicht ganz funktionieren, obwohl ich den Kommentar zu schätzen weiß und wahrscheinlich diesen Teil irgendwann hätte reparieren müssen. Mein Kalender ist immer noch leer und es werden keine Ereignisse angezeigt, während ich versuche, sie zu laden. – Reed

+0

@Reed Ich habe gerade meinen Beitrag bearbeitet –

+0

Ich gebe jetzt auch die ID, aber ohne Erfolg – Reed

5

ich ein kurzes Beispiel aufgebaut und hatte keine Mühe, dies funktioniert:

PHP:

<?php 

$record[0]["title"]="Test 1"; 
$record[1]["title"]="Test 2"; 
$record[2]["title"]="Test 3"; 

$record[0]["start_date"]="1333976400"; 
$record[1]["start_date"]="1333976401"; 
$record[2]["start_date"]="1333976402"; 

$record[0]["end_date"]="1333980000"; 
$record[1]["end_date"]="1333980001"; 
$record[2]["end_date"]="1333980002"; 

$record[0]["id"]="1"; 
$record[1]["id"]="2"; 
$record[2]["id"]="3"; 

for ($i=0; $i<3; $i++) { 

    $event_array[] = array(
      'id' => $record[$i]['id'], 
      'title' => $record[$i]['title'], 
      'start' => $record[$i]['start_date'], 
      'end' => $record[$i]['end_date'], 
      'allDay' => false 
    ); 


} 

echo json_encode($event_array); 


exit; 

?> 

HTML:

events: '/events.php' 

Beispielausgabe aus dem PHP Skript:

[{"id":"1","title":"Test 1","start":"1333976400","end":"1333980000","allDay":false},{"id":"2","title":"Test 2","start":"1333976401","end":"1333980001","allDay":false},{"id":"3","title":"Test 3","start":"1333976402","end":"1333980002","allDay":false}] 

Also, da das obige für mich funktioniert und es wirklich nicht anders ist als das, was Sie oben haben, müssen Sie vielleicht überprüfen, ob das PHP-Skript tatsächlich korrekt aufgerufen wird. Überprüfen Sie die Javascript-Konsole in Mozilla Firefox oder Google Chrome, um festzustellen, ob Fehler auftreten, wenn Fullcalendar versucht, die Ereignisse zu laden. Überprüfen Sie Ihre Webserver-Zugriffs-/Fehlerprotokolle auf eventuelle Hinweise auf das PHP-Skript.