Guten morgen zusammen.
Nach längerer Zeit brauche ich mal wieder ein paar Tips von euch, nachdem ewige Recherchen im Internet mehr bzw. weniger erfolgreich waren. Es geht um die Frage, ob und wie man mit Serverseitigen Fehlern umgehen kann, wenn man mit AJAX arbeitet.
Beispiel:
Bisher haben meine Scripte die häufigsten Fehlerfälle aufgefangen und entsprechende Meldungen für den Benutzer ausgegeben:
Fazit:
ENTWEDER gibt das Script das Ergebnis der Abfrage zurück, ODER eine Fehlermeldung.
Und genau dieses "ODER" im vorherigen Satz macht mir jetzt Probleme. Ich baue mir das Script mal so um, das es mir die Daten JavaScript lesbar aufbereitet (ich nehme hier mal JSON, um das Format geht es hier ja nicht!).
Problem:
Das Problem ist nun, dass die JavaScript Funktion, die die AJAX Anfrage stellt, nicht weiß, ob ein Fehler oder ein Ergebnis zurück geliefert wird!
Denn entweder enthält die JavaScript Variable "dat" ein komplexes Objekt mit Daten aus der Datenbank ODER einen einfachen String mit der Fehlermeldung. Ich habe es in tausend verschiedenen Versuchen nicht geschafft, zu prüfen, wann was zurück kommt um im JavaScript entsprechend darauf zu reagieren!
Fragen:
Schon mal vielen Dank für eure Antworten.
Nach längerer Zeit brauche ich mal wieder ein paar Tips von euch, nachdem ewige Recherchen im Internet mehr bzw. weniger erfolgreich waren. Es geht um die Frage, ob und wie man mit Serverseitigen Fehlern umgehen kann, wenn man mit AJAX arbeitet.
Beispiel:
Bisher haben meine Scripte die häufigsten Fehlerfälle aufgefangen und entsprechende Meldungen für den Benutzer ausgegeben:
PHP-Code:
$dbCon = db_connect();
if($dbCon) {
$id = intval($_GET['id']);
$dbRes = db_execute('SELECT * FROM tabelle WHERE id='.$id);
if($dbRes && mysql_num_rows($dbRes) != 0) {
$myObject = Array();
$myObject = [...] usw. [...]
} else {
$errorMsg = "Kein Datensatz gefunden!";
}
} else {
$errorMsg = "Datenbankverbindung nicht hergestellt!";
}
ENTWEDER gibt das Script das Ergebnis der Abfrage zurück, ODER eine Fehlermeldung.
Und genau dieses "ODER" im vorherigen Satz macht mir jetzt Probleme. Ich baue mir das Script mal so um, das es mir die Daten JavaScript lesbar aufbereitet (ich nehme hier mal JSON, um das Format geht es hier ja nicht!).
PHP-Code:
$dbCon = db_connect();
if($dbCon) {
$id = intval($_GET['id']);
$dbRes = db_execute('SELECT * FROM tabelle WHERE id='.$id);
if($dbRes && mysql_num_rows($dbRes) != 0) {
$myObject = Array();
$myObject = [...] usw. [...]
} else {
$errorMsg = "Kein Datensatz gefunden!";
}
} else {
$errorMsg = "Datenbankverbindung nicht hergestellt!";
}
if($errorMsg != '') {
echo $myJson->encode($errorMsg);
} else {
echo $myJson->encode($myObject);
}
Das Problem ist nun, dass die JavaScript Funktion, die die AJAX Anfrage stellt, nicht weiß, ob ein Fehler oder ein Ergebnis zurück geliefert wird!
PHP-Code:
new Ajax.Request(test.php, {
method:'get',
onSuccess: function(req) {
var dat = req.responseText.evalJSON();
[...] verarbeiten der daten ODER anzeigen des fehlers [...]
}
});
Fragen:
- Ist der Ansatz den ich hier umsetzen möchte überhaupt sinnvoll?
- Gibt es andere Möglichkeiten, soetwas vielleicht viel eleganter zu lösen?
- Eigentlich hatte ich vor, nach dem einfachen Error-Management noch einen Schritt weiter zu gehen und JEDEM Ergebnis, welches vom Server-Script zurück kommt, einen Status zu verpassen (OK oder Fehler). Nach dem Prinzip:
{"errorState":true,"errorMessage":"Kein Datensatz gefunden!"}null
ODER
{"errorState":false,"errorMessage":null} [...] hier das Objekt mit Daten [...]
Schon mal vielen Dank für eure Antworten.
Kommentar