Wieder mal: Problem mit JSON/Ajax
bearbeitet von juppixHi zusammen,
ich habe (mal wieder) ein Problem(chen) mit meinem JSON-"Freund"!
Da Ihr so perfekt unterstützt frage ich einfach mal wieder an...:
Ich möchte den ["Bootstrap year calendar"](http://www.bootstrap-year-calendar.com/) an eine PHP-Ajax-Datenquelle "anhängen" (JSON denke ich mal).
Der Kalender wird wie folgt initialisiert:
~~~JavaScript
$('#calendar').calendar({
enableContextMenu: true,
enableRangeSelection: true,
…
…
dataSource: [
{
id: 0,
name: 'Google I/O',
location: 'San Francisco, CA',
startDate: new Date(currentYear, 4, 28),
endDate: new Date(currentYear, 4, 29)
},
{
id: 1,
name: 'Microsoft Convergence',
location: 'New Orleans, LA',
startDate: new Date(currentYear, 1, 16),
endDate: new Date(currentYear, 1, 16)
},
…
…
~~~
Nun gibt es beim Googeln auch viele Infos um den Kalender an AJAX anzubinden, z. B.: [https://github.com/Paul-DS/bootstrap-year-calendar/issues/21](https://github.com/Paul-DS/bootstrap-year-calendar/issues/21)
... aber ich kriege es wieder einfach nicht hin.
Soweit bin ich bereits (wie bei dem Link oben erklärt):
~~~JavaScript
…
…
},
{
id: 9,
name: 'LA Tech Summit',
location: 'Los Angeles, CA',
startDate: new Date(currentYear, 10, 17),
endDate: new Date(currentYear, 10, 17)
}
],
yearChanged: function(e) {
e.preventRendering = true;
$(e.target).append('<div style="text-align:center"><img src="./img/loading_spinner.gif" /></div>');
$.ajax({
url: "./calendar_data_test.php",
success: function(dataSource) {
$(e.target).data('calendar').setDataSource(dataSource);
}
});
}
});
~~~
Und hier der Inhalt meiner PHP-Datei, welche das JSON zurück geben soll (dann in Zukunft aus einer mySQL... aber erst wenns grundsätzlich klappt ;-) ...:
~~~PHP
<?php
$out = array();
for($i=1; $i<=15; $i++){ //from day 01 to day 15
$data = date('Y-m-d', strtotime("+".$i." days"));
$out[] = array(
'id' => $i,
'name' => 'Event name '.$i,
'location' => 'location',
'startDate' => '2018-05-01',
'endDate' => '2018-05-20'
);
}
echo json_encode($out);
exit;
?>
~~~
Wie gesagt: Kein Fehler wird geworfen aber es gibt halt auch keine schönen Kalendereinträge 😕
Ich weiß nicht mal, ob das Datumsformat so passt welches das PHP zurück liefert. Der Kalender erwartet in Javascript ja ein "new Date(2018, 10, 17)".
Freunde, ich bin über jede Hilfe extreeem dankbar!
Liebe Grüße!
jup
PS: Der downloadbare Kalender-Code von www.bootstrap-year-calendar.com enthält das Event "yearChange" noch nicht. Ich habe mir die aktuelle Kaleder-Version von o.g. Github-Seite gezogen und diese hat das Event.