2012-03-21 12 views
14

Sto cercando di utilizzare il calendario completo per caricare eventi da una sorgente JSON. Il json proviene da un URL come un feed, "mysite.com/getEvents" (che restituisce un oggetto evento json). In questo momento restituisce un oggettoJquery Full Calendar json sintassi sorgente evento

{"allDay":false,"end":1325577600,"start":1325577600} 

ho provato

$('#calendar').fullCalendar({ 
    events: 'mysite.com/getEvents' 
}); 

ma non succede nulla. So che a JSON mancano il titolo e l'id. Quindi abbiamo 2 domande.

  1. Qual è il modo corretto per ottenere gli eventi da un URL JSON
  2. Come posso fare per generare un ID per ogni evento creato?

risposta

15

Si dovrebbe provare a formare il JSON in modo che abbia tutti i campi richiesti. Per esempio, sul mio progetto successivo è sufficiente:

  • id
  • titolo
  • inizio
  • fine
  • AllDay

Penso che l'ID deve solo essere unico per quell'istanza del feed JSON, quindi potresti semplicemente avere un contatore incrementale nello script sul lato server che genera il JSON.

uscita Esempio dallo script JSON:

[ 
    "0", 
    { 
     "allDay": "", 
     "title": "Test event", 
     "id": "821", 
     "end": "2011-06-06 14:00:00", 
     "start": "2011-06-06 06:00:00" 
    }, 
    "1", 
    { 
     "allDay": "", 
     "title": "Test event 2", 
     "id": "822", 
     "end": "2011-06-10 21:00:00", 
     "start": "2011-06-10 16:00:00" 
    } 
] 
+0

Grazie. Ci ho provato ma non ha funzionato. Qual è la sintassi corretta? Come potrei provare solo un oggetto JSON senza usare un URL. Sto cercando di imparare la sintassi che funziona, quindi cosa sarebbe un ipotetico oggetto JSON nel contesto della chiamata jquery fullcalendar. – EKet

+0

Ho modificato la mia risposta per fornire un output di esempio dal tuo script –

+0

grazie, ho avuto la sintassi sbagliata e questo era perfetto. Tu uomo. – EKet

16

Quando uso la sintassi nella risposta accettata, ottengo quattro eventi in calendario, non due. I due extra sono bizzarramente intitolati "12:44". Su un intuizione, ho tolto le linee di "0" e "1" ed ora funziona perfettamente:

[ 
    { 
    "title": "Ceramics", 
    "id": "821", 
    "start": "2014-11-13 09:00:00", 
    "end": "2014-11-13 10:30:00" 
    }, 
    { 
    "title": "Zippy", 
    "id": "822", 
    "start": "2014-11-13 10:00:00", 
    "end": "2014-11-13 11:30:00" 
    } 
] 
+2

La risposta accettata non funziona. Ma funziona. –

+0

La risposta accettata è dati JSON validi ma l'uso di 'eventi' non funziona. Forse funzionerebbe con 'eventSources'. La soluzione formattata sopra funziona. – HPWD

4

So che questo è un vecchio post, ma altri possono essere alla ricerca di questo ...

È bisogno di avere parentesi intorno alla tua risposta JSON, sembra essere in attesa di una matrice di oggetti:

[ 
    { 
     "title":"foo1", 
     "id":"123", 
     "start":"2016-02-12T10:30:00", 
     "end":"2016-02-12T12:30:00" 
    }, 

    { 
     "title":"foo2", 
     "id":"456", 
     "start":"2016-02-14T10:30:00", 
     "end":"2016-02-14T12:30:00" 
    } 
]