Kalma
Erfahrenes Mitglied
Guten Morgen,
ich versuche momentan, ein einfaches Gästebuch zu realisieren wo der neue Eintrag nach dem Senden-klick direkt unten eingeblendet wird.
Ich habe bisher eine PHP-Funktion die die Einträge ausliest.
Mein Ajax-Script sieht bis jetzt so aus:
Die PHP-statusmeldungen sehen so aus:
Das ganze ist ja so sehr unschön, denn:
- lasse ich die Seite sichtbar aktualisieren brauche ich ja auch gar kein Ajax verwenden.
- die status-meldung für den Erfolg des speicherns wird einfach abgebrochen.
Ich hätte gern folgendes realisiert:
- Man klickt auf Senden
- Error:
---> Error-Nachricht wird eingeblendet und bleibt stehen, bis man entweder erfolgreich eine Nachricht sendet, oder vor Verzweiflung die Seite wechselt
- Success
---> Erfolgsnachricht wird eingeblendet (2-5 Sekunden oder so)
---> Die Einträge unter der Eingabe Box werden aktualisiert.
---> Nachricht wird ausgeblendet
Ich würde mir das ganze so vorstellen.
In dem success-Teil in dem Ajax Script lasse ich die PHP-Datei erneut aufrufen, damit die PHP-Funktion "getEntries();" neu aufgerufen wird und neue Einträge ausliest und ausgibt.
Dann könnte ich wie bisher mit dem setTimeOut(); die Success-Nachricht ein/ausblenden. Aber wie rufe ich die PHP-Funktion neu auf?
Gruß und vielen Dank im Vorraus!
ich versuche momentan, ein einfaches Gästebuch zu realisieren wo der neue Eintrag nach dem Senden-klick direkt unten eingeblendet wird.
Ich habe bisher eine PHP-Funktion die die Einträge ausliest.
Mein Ajax-Script sieht bis jetzt so aus:
Code:
function submitform(file, form, errordiv, successdiv)
{
$.ajax({
type: "POST",
url: file;
data: $(form).serialize();
dataType: "json",
success: function(msg) {
errorstatus = parseInt(msg.status);
if(errorstatus == 3) {
// ok, seite aktualisieren
error(1, msg.txt, successdiv); // bisschen unlogisch. aber heißt soviel: aktiviere div mit dem namen aus "successdiv" und schreibe die json nachricht rein.
window.setTimeout(update,2000);
function update()
{
window.location.reload();
}
} else {
error(1, msg.txt, errordiv); //aktiviere error-div und schreibe nachricht rein.
}
}
});
}
Die PHP-statusmeldungen sehen so aus:
PHP:
echo '{status:3,txt:"Dein Eintrag wurde gespeichert"}';
exit;
//oder
die('{status:0,txt:"Dein Eintrag konnte nicht gespeichert werden!"}');
Das ganze ist ja so sehr unschön, denn:
- lasse ich die Seite sichtbar aktualisieren brauche ich ja auch gar kein Ajax verwenden.
- die status-meldung für den Erfolg des speicherns wird einfach abgebrochen.
Ich hätte gern folgendes realisiert:
- Man klickt auf Senden
- Error:
---> Error-Nachricht wird eingeblendet und bleibt stehen, bis man entweder erfolgreich eine Nachricht sendet, oder vor Verzweiflung die Seite wechselt
- Success
---> Erfolgsnachricht wird eingeblendet (2-5 Sekunden oder so)
---> Die Einträge unter der Eingabe Box werden aktualisiert.
---> Nachricht wird ausgeblendet
Ich würde mir das ganze so vorstellen.
In dem success-Teil in dem Ajax Script lasse ich die PHP-Datei erneut aufrufen, damit die PHP-Funktion "getEntries();" neu aufgerufen wird und neue Einträge ausliest und ausgibt.
Dann könnte ich wie bisher mit dem setTimeOut(); die Success-Nachricht ein/ausblenden. Aber wie rufe ich die PHP-Funktion neu auf?
Gruß und vielen Dank im Vorraus!