Fullcalendar mit einem JSON-PHP-Seite als Quelle
Ich bin versucht, eine PHP-Seite, gehostet auf einem MySQL-server generiert eine JSON-feed, den ich verwenden wollte, wie in der "eventSources" array von Fullcalendar in meinem Ionischen Anwendung. Der Kalender ist rendering, aber es ist nicht die Anzeige der Daten in den feed. Ich habe die Arbeit an dieser für ein paar Tage und keine Dokumente auf dem Fullcalendar-site nicht funktioniert.
Hier ist die JSON-String:
{"success":1,"message":"Details Available!","events":[
{"ID":"1","title":"Example Class","start":"2014-08-29 09:00:00","end":"2014-08-29 17:00:00","all_day":"0"},
{"ID":"2","title":"Example Class 2","start":"2014-08-13 00:00:00","end":"2014-08-13 00:00:00","all_day":"0"},
{"ID":"3","title":"Example Event with Time","start":"2014-08-13 12:00:00","end":"2014-08-13 13:00:00","all_day":"0"},
{"ID":"11","title":"Testing 123","start":"2014-08-13 00:00:00","end":"2014-08-13 23:59:00","all_day":"1"}]}
Hier ist die PHP-Seite generieren des JSON-oben:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
header("Content-Type:application/json");
header("Access-Control-Allow-Origin: *");
$user="user";
$pass="password";
$table="database";
$db=new PDO("mysql:host=localhost;dbname=$table", $user,$pass);
//initial query
$query = "Select * FROM table";
//execute query
try {
$stmt = $db->query($query);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
//Finally, we can retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();
if ($rows) {
$response["success"] = 1;
$response["message"] = "Details Available!";
$response["events"] = array();
foreach ($rows as $row) {
$post = array();
$post["ID"] = $row["ID"];
$post["title"] = $row["title"];
$post["start"] = $row["start"];
$post["end"] = $row["end"];
$post["all_day"] = $row["all_day"];
//update our repsonse JSON data
array_push($response["events"], $post);
}
//echoing JSON response
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Events Available!";
die(json_encode($response));
}
?>
Hier ist der controller für den Kalender:
App.controller('LogHomeCtrl', function($scope, $log, $state)
{
$scope.TimeTabl = function()
{
$state.go('timetable');
}
});
App.controller('calCtrl', function ($scope, $log, $state)
{
$scope.eventSources = [
{
events: {
url: 'url/calendarConnect.php',
type: 'POST',
error: function() {
alert('there was an error while fetching events!');
},
color: 'yellow', //a non-ajax option
textColor: 'black' //a non-ajax option
}
}
];
});
Ich habe versucht, mit verschiedenen Methoden den Aufruf der PHP-Seite, aber nichts davon funktioniert. Wenn jemand darauf hinweisen könnte, wohin ich gehe falsch, dass wäre toll.
InformationsquelleAutor geolaw | 2014-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Existiert paar Möglichkeiten, wie Sie können
events
für Kalender:1.als array:
2.als json-Objekt:
3.als Funktion:
4.als benutzerdefinierte Funktion:
In deinem Fall 3-rd Art und Weise mehr angemessen ist. Weitere Einzelheiten finden Sie unter offizielle Fullcalendar-Dokumentation über die Ereignisse.
müssen Sie rufen Sie
callback(response.events)
in der success Funktion, sollte es funktionieren. Auch, Sie können erstellen einfache ajax-Funktion und legen Sie es Reaktion auf Ereignisse im Kalender. Bitte, siehe meine aktualisierte Antwort.ich lese durch die Funktion Dokumentationen, Durcheinander herum mit dem code, bis er begann, sorry über die späte Antwort. Ich vergaß, die als eine Antwort.
InformationsquelleAutor joni jones
Ändern Sie diese (durch hinzufügen von [] nach ["events"]):
InformationsquelleAutor Nada