"Zurück" ohne dass sich das Formular leert
Werner
- php
Hallo,
ich habe ein kleines Problem. Ich habe ein Formular, das von PHP verarbeitet wird. Nun kann es sein, dass es nicht richtig ausgefüllt worden ist, also lasse ich nach dem Abschicken dann eine Fehlermeldung erscheinen. Wenn dann der User auf "Zurück" klickt, ist das ganze Formular leer. Wie kann ich das verhindern? Eine Möglichkeit wäre sicher, auf der Seite mit der Fehlermeldung das Formular wieder anzeigen zu lassen mit den Feldern vorbelegt mit der alten Eingabe... aber gibt es nicht auch eine andere Lösung? Hat das Ganze eventuell irgendwie etwas mit dem Cache zu tun?
Sicherlich bin ich nicht der Erste, der das fragt, aber ich finde gerade nichts passendes im Archiv.. wahrscheinlich übersehe ich die Lösung....
Gruß Werner
Hallo
Eine Möglichkeit wäre sicher, auf der Seite mit der Fehlermeldung das Formular wieder anzeigen zu lassen mit den Feldern vorbelegt mit der alten Eingabe... aber gibt es nicht auch eine andere Lösung? Hat das
Du kannst doch schon Dein Ursprungformular mit
php generieren. Wenn keine Daten per post angekommen sind
gibst du es aus. Wenn eine Fehlermeldung vorliegt
gibst du erst diese aus und dann das formular.
Grundsätzlich bei jedem Feld ein value ausgeben, falls einer
vorliegt.
Das Formular schickst du einfach an sich selber.
Ist zwar trotzdem aufwendig, aber einfacher als zwei Formulare.
So mache ich es, kann mir keine einfachere Lösung vorstellen,
aber wer weiß, vielleicht postet ja noch jemand was...
Gruß,
Ben
Moin!
Wenn dann der User auf "Zurück" klickt, ist das ganze Formular leer. Wie kann ich das verhindern?
Dieses Verhalten hängt vom Browser ab. Ich benutze Opera, der macht sowas nicht, sondern läßt das Formular beim Zurückgehen (oder erneutem Vorwärtsgehen) so anzeigen, wie man es verlassen hat.
Insofern dürfte deine Einflußmöglichkeit auf den Browser sehr gering sein.
Eine Möglichkeit wäre sicher, auf der Seite mit der Fehlermeldung das Formular wieder anzeigen zu lassen mit den Feldern vorbelegt mit der alten Eingabe...
Das ist die zu bevorzugende Methode. Und ohnehin eine sehr gute Idee. Die DCLP-FAQ nennt so eine Funktion "Affenformular": http://www.dclp-faq.de/q/q-stil-normalform.html
aber gibt es nicht auch eine andere Lösung? Hat das Ganze eventuell irgendwie etwas mit dem Cache zu tun?
Nein, andere Lösungen sind mir nicht bekannt. Entweder dein Browser bietet das Formular beim Zurückgehen ausgefüllt wieder an, oder du schickst die ausgefüllten Daten auf der neuen Seite nochmal zum Browser.
- Sven Rautenberg
Dieses Verhalten hängt vom Browser ab. Ich benutze Opera, der macht sowas nicht, sondern läßt das Formular beim Zurückgehen (oder erneutem Vorwärtsgehen) so anzeigen, wie man es verlassen hat.
Insofern dürfte deine Einflußmöglichkeit auf den Browser sehr gering sein.
Stimmt, bei Opera bleibt die Eingabe...aber der IE macht das (Löschen) anscheinend auch nciht immer.. wenn ich bei www.google.com was eingebe, suche und zurückgehe ist es wieder da
wenn ich in dem Eingabefeld auf der Ergebnisseite (das ja schon vorbelegt ist) was eingebe, suche, und auf diese seite zurückgehe, steht beim IE der erste Suchbegriff, bei Opera allerdings der zweite den ich neu eingegeben hatte...
Hallo, Werner,
eigentlich sollten die Eingaben erhalten bleiben - und die meisten modernen Browser machen es wohl auch so ...
Eine Möglichkeit zum Sicherstellen der gewünschten Funktionalität wäre das bereits erwähnte "Affenformular", das aber serverseitiges Skripting voraussetzt.
Als Alternative könnte man die Feldwerte auch mit Hilfe von JavaScript in einem oder mehreren Cookies speichern und beim erneuten Laden der Seite (oder eines anderen Formulars mit identischen Feldern) wieder einsetzen.
Grüße,
Sebastian
Moin!
Eine Möglichkeit zum Sicherstellen der gewünschten Funktionalität wäre das bereits erwähnte "Affenformular", das aber serverseitiges Skripting voraussetzt.
Du postest in einem Thread mit dem Thema "PHP". Da kann man serverseitiges Skripting voraussetzen. :)
Als Alternative könnte man die Feldwerte auch mit Hilfe von JavaScript in einem oder mehreren Cookies speichern und beim erneuten Laden der Seite (oder eines anderen Formulars mit identischen Feldern) wieder einsetzen.
Uargh. Klingt eklig.
- Sven Rautenberg