2012-04-10 12 views
6

Konfiguruję aplikację przy użyciu FullCalendar (http://arshaw.com/fullcalendar/), która umożliwia użytkownikowi wyświetlanie informacji o harmonogramie klienta oraz planowanie klientów za pośrednictwem interfejsu zarządzania.Jak uzyskać FullCalendar do wyświetlania informacji z mojego kanału JSON?

Chcę użyć bazy danych MySQL do wypełnienia tablicy, a następnie przekazać tę tablicę w postaci kanału JSON do FullCalendar na stronie HTML. Najlepiej byłoby, gdyby informacje o kliencie pojawiły się na stronie HTML. Jednak mimo że mój kanał JSON jest przekazywany, w moim FullCalendar nie ma żadnych zdarzeń.

Przykład JSON paszy są przekazywane:

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

Jestem całkiem nowy na tych językach i nie zdziwiłbym się, gdyby ten błąd okazują się być proste.

Gorąco doceniam każdą pomoc lub wgląd w pojawienie się tych wydarzeń. Kiedy ręcznie wprowadzam tablicę do FullCalendar, pokazuje ona zdarzenia, ale jak na razie mój kanał JSON nie wyświetla żadnych informacji.

Dziękuję

Dla porównania: 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); 

Odpowiedz

7

Problemem dla tych, którzy szukają mnie, było to, że mój plik PHP zawierał znaczniki head i body HTML. Jestem noob PHP i nie wiedziałem, że to nie zadziała. Aby FullCalendar wyświetlał kanał JSON, musi mieć TYLKO kod PHP, bez HTML. JSONLint.com było nieocenione w ustalaniu tego.

1
events: '/json-events.php' 

powinny być albo

events: './json-events.php' 

lub

events: 'json-events.php' 

Daj mi znać, jeśli to pomaga ...

EDIT

Zauważyłem również, że w JSON, który swój otrzymują nie ma id w linii. Może się zdarzyć, że coś między nazwaniem twojego ID w DB będzie porównywalne do nazwy, której używasz w tablicy. Sprawdź to i sprawdź, czy to właśnie się dzieje, ponieważ jest to jedna z właściwości wymaganych do przekazania zdarzenia.

EDIT

spróbuj usunąć [] od $ event_array [] i zobaczyć co się dzieje ... Jeśli to nie zadziała, niż ja stumpped ...Niestety

+0

Wygląda na to, że obie te opcje nie pomagają w pracy, ale doceniam komentarz i prawdopodobnie musiałbym w końcu naprawić tę część. Mój kalendarz jest wciąż pusty, bez żadnych widocznych zdarzeń, gdy próbuję go załadować. – Reed

+0

@Reed Właśnie edytowałem swój post –

+0

Teraz przekazuję również identyfikator, ale bez skutku – Reed

5

skonfigurować szybki przykładowe i nie mają żadnych problemów z dostaniem tej pracy:

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' 

Przykładowe wyjście z PHP skrypt:

[{"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}] 

Biorąc pod uwagę, że powyższe działa dla mnie i tak naprawdę nie różni się od tego, co masz powyżej, może zajść potrzeba sprawdzenia, czy skrypt PHP jest poprawnie wywoływany. Sprawdź konsolę Javascript w przeglądarce Mozilla Firefox lub Google Chrome, aby sprawdzić, czy są jakieś błędy generowane podczas próby załadowania zdarzeń przez program Fullcalendar. Sprawdź dzienniki dostępu/błędów serwera WWW pod kątem jakiejkolwiek wzmianki o skrypcie PHP.

Powiązane problemy