Mehrseitige PHP Formulare
Rene Grassegger
- php
Hallo Selflinge,
ich arbeite zur Zeit an mehrseitigen Formularen mit serverseitger Validierung.
Leider hänge ich an Kleinigkeiten fest, wo ich keine brauchbare Information mit Google, php.net und dgl. finden kann.
Kann mir jemand bitte erklären wie das funktioniert?
Mein Problem:
Ich habe drei Checkboxen:
<input type="checkbox" name="Deckleiste_A[]" value="mit Kugerl"<?php checked_checkbox($HTTP_POST_VARS['Deckleiste_A'], "mit Kugerl");?>>
<input type="checkbox" name="Deckleiste_A[]" value="mit Spitzen"<?php checked_checkbox($HTTP_POST_VARS['Deckleiste_A'], "mit Spitzen");?>>
<input type="checkbox" name="Deckleiste_A[]" value="ohne Kugerl/Spitzen"<?php checked_checkbox($HTTP_POST_VARS['Deckleiste_A'], "ohne Kugerl/Spitzen");?>>
die werden validiert und an den nächsten Schritt per method="post" weitergegeben.
Auf der nächsten Seite werden die beiden ausgeählten Werte des Arrays mit
if(isset($HTTP_POST_VARS['Deckleiste_A'])) {
foreach($HTTP_POST_VARS['Deckleiste_A'] as $element) {
echo '<input type="hidden" name="Deckleiste_A" value="'.$element."">\n";
}
}
in 2 hidden Fiels geschrieben.
Das Problem, wird die Seite nochmal gesendet (z.b. wegen Validierung gibt es einen Fehler wegen foreach)
"Warning: Invalid argument supplied for foreach() "
Meine Frage lautet nun.
Wie macht ihr es, dass Werte aus einem Array über mehrere Seiten immer erhalten bleiben?
(und wie verhindert ihr, dass das Formular vor der Validierung geschickt wird)
Tausend Dank für eure Mühe.
Gruß
Rene
Hallo ihr da draußen,
die werden validiert und an den nächsten Schritt per method="post" weitergegeben.
Aus dem, was du geschrieben hast, schließe ich mal, dass du es mit JavaScript validierst.
(und wie verhindert ihr, dass das Formular vor der Validierung geschickt wird)
Validiere das Formular einfach im PHP-Script.
Das heißt, dass das Formular immer abgesendet wird, und du dann im PHP-Script dein Zeug überprüfst. Wenn die Überprüfung fehlschlägt kannst du ja zum Beispiel den Browser zurück gehen lassen oder einfach eine Fehlermeldung ausgeben.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),
Dogfish
Hallo Dogfish,
Aus dem, was du geschrieben hast, schließe ich mal, dass du es mit JavaScript validierst.
Nein ich arbeite nur mit PHP.
Grüße
Rene
Hallo Rene,
Wie macht ihr es, dass Werte aus einem Array über mehrere Seiten immer erhalten bleiben?
Variante 1)
Du wandelst das Array in einen String, dann packst du den in ein hidden-Field
und im Script 2 entschlüsselst du den String wieder zu einem Array.
Variante 2)
Verwewnde Sessions.
Ich rate dir zu 2.
und wie verhindert ihr, dass das Formular vor der Validierung geschickt wird
gar nicht. Wie schon gesagt, werte die Eingaben mittels PHP aus, lasse
Fehler vom User ggf. korigieren und leite dann erst auf Seite 2 weiter.
Grüße
David
Hallo David,
Verwewnde Sessions.
Ich hab da grad was gelesen und wenn du es auch vorschlägst, wirds wohl die session werden.
Herzlichen Dank!
Gruß
Rene