2012-04-10 6 views
6

Sto configurando un'applicazione utilizzando FullCalendar (http://arshaw.com/fullcalendar/) che consentirà all'utente di visualizzare le informazioni di pianificazione del client e di pianificare i client tramite un'interfaccia di gestione.Come posso ottenere FullCalendar per visualizzare informazioni dal mio feed JSON?

Desidero utilizzare un database MySQL per popolare un array e quindi passare tale array sotto forma di un feed JSON a FullCalendar su una pagina HTML. Idealmente, quindi, le informazioni sul client verrebbero visualizzate nella pagina HTML. Tuttavia, anche se il mio feed JSON viene passato, non ci sono eventi sul mio FullCalendar.

alimentazione Esempio JSON viene passato:

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

Sono abbastanza nuovo per queste lingue e non sarei sorpreso se questo errore rivelarsi semplice.

Apprezzerei molto qualsiasi aiuto o intuizione sull'avere questi eventi. Quando inserisco manualmente un array in FullCalendar, esso mostra gli eventi, ma finora il mio feed JSON non ha prodotto alcuna informazione.

Grazie

Per riferimento: 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); 

risposta

7

Quindi il problema, per gli utenti che mi hanno seguito, era che il mio file PHP aveva tag HTML testa e corpo. Sono un noob PHP e quindi non sapevo che avrebbe causato il mancato funzionamento. Affinché FullCalendar visualizzi il feed JSON, deve avere SOLO codice PHP, nessun HTML. JSONLint.com ha avuto un valore inestimabile nel capire ciò.

1
events: '/json-events.php' 

dovrebbe essere o

events: './json-events.php' 

o

events: 'json-events.php' 

Fatemi sapere se questo aiuta ...

EDIT

Ho anche notato che nel JSON che il vostro stanno ricevendo non c'è id nella linea. Potrebbe esserci qualcosa tra il nome dell'ID all'interno del DB e il nome che usi nell'array. Controllalo e vedi se è quello che sta succedendo, perché quella è una delle proprietà che sono richieste per passare l'evento.

EDIT

provare a rimuovere la [] da $ event_array [] e vedere cosa succede ... Se questo non funziona quanto mi sono stumpped ...dispiace

+0

Sembra che entrambe le opzioni non lo stiano facendo funzionare, anche se apprezzo il commento e probabilmente avrei dovuto risolvere quella parte alla fine. Il mio calendario è ancora vuoto, senza eventi che appaiono mentre provo a caricarlo. – Reed

+0

@Reed Ho appena modificato il mio post –

+0

Ora sto passando anche l'ID ma inutilmente – Reed

5

ho creato un esempio veloce e non ho avuto nessuna difficoltà a trovare questo lavoro:

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' 

output prodotto da PHP script:

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

Quindi dato che quanto sopra funziona per me ed è davvero diverso da quello che hai sopra, potresti dover controllare che lo script PHP venga effettivamente chiamato correttamente. Controlla la console Javascript in Mozilla Firefox o Google Chrome per vedere se ci sono degli errori quando Fullcalendar prova a caricare gli eventi. Controlla i log di accesso/errore del server web per qualsiasi menzione dello script PHP.

Problemi correlati