Mailinglisten-Archive |
Hi Frank, Frank Kunze schrieb: > Hallo PHP-Freunde, > > was ich gerade habe ist bestimmt ein > "Anfängerproblem": > > Ich will ein Formular mehrfach aufrufen, > die schon eingetragenen Felder sollen erhalten > bleiben und erst wenn alle Pflichtfelder > ausgefüllt sind wird weiterverarbeitet. > > Das Auslagern des Formulars in eine Funktion > brachte "Ärger", weil bei Benutzung in einer > do-while-Schleife der neue Formularaufruf separat > erscheint. Ich will aber bei nicht vollständig > ausgefülltem Formular von vorn anfangen, > ohne dass die Feldvariablen gelöscht werden, > d.h. im Grunde soll das alte Form wiedererscheinen; > der Nutzer soll aber nicht alles neu eintragen > müssen. Du kannst das Problem z.B. so lösen: Die Formularseite ist zugleich die Versandseite. D.h. das Formular wird immer an die Seite selbst abgeschickt (action="<?php echo($_SERVER['PHP_SELF']); ?>"). Das ist Punkt 1. Zweitens machst Du am Anfang der Seite eine Unterscheidung: Wird das Formular erstmals aufgerufen (wenn ja, dann gibt es keine $_POST-Variable)? Wurden alle Pflichtangaben gemacht, wenn das Formular abgeschickt wurde (die entsprechenden $_POST-Werte abprüfen)? Wenn das Formular abgeschickt wurde, aber nicht alle Angaben vollständig sind, Formular wieder vorlegen, ansonsten Daten verschicken. Damit die Formularfelder bei der Wiedervorlage automatisch befüllt werden, kannst Du z.B. bei Textfeldern so vorgehen: <input type="text" name="meinName" value="<?php if (isset($_POST) && isset($_POST['meinName'])) { echo($_POST['meinName']); } ?>" /> Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive