Formulare über mehrere Seiten

PHP - Formulare über mehrere Seiten Formulardaten müssen oft über mehrere Seiten "mitgenommen"
werden, eine kleine PHP Funktion erspart ihnen eine menge Arbeit.

Wer schon einmal komplexe Formulare erstellt hat, der kennt das
Problem. Bei Formularen, die sich über mehrere Seiten erstrecken,
müssen die jeweiligen Eingaben von Formular zu Formular überreicht
werden. Das ist natürlich sehr stressig, da dies meist über
versteckte Formularfelder geschieht.
Mit einer kleinen PHP Funktion kann man die versteckten Formularfelder
dynamisch erzeugen.

<?php
function dyn_form()
{
global $HTTP_POST_VARS, $HTTP_GET_VARS;
if (isset($HTTP_POST_VARS)) {
//bei POST
foreach ($HTTP_POST_VARS as $key => $elem) {
echo "<input type=\"hidden\" name=\"$key\"
value=\"$elem\">";
}
}
else {
//bei GET
foreach ($HTTP_GET_VARS as $key => $elem) {
echo "<input type=\"hidden\" name=\"$key\"
value=\"$elem\">";
}
}
} //end function
?>

Die Funktion dyn_form() ist eigentlich leicht zu verstehen. Zunächst
wird den jeweiligen Arrays $HTTP_POST_VARS, bzw. $HTTP_GET_VARS
globale Eigenschaften gegeben, d.h. diese müssen nicht an die
Funktion übermittelt werden, sondern sind direkt in die Funktion
integriert.
Die erste if-Bedingung prüft mit der Funktion isset(), ob die
jeweiligen Arrays gesetzt sind, wenn ja, dann wird das entsprechende
$HTTP_POST_VARS oder $HTTP_GET_VARS , weiter verarbeitet.
Dies erledigt eine Foreach-Schleife. Mit ihr wird der Schlüssel,
oder Index des Arrays, sowie der zugewiesene Wert ermittelt, und
dann im versteckten Formularfeld wieder ausgegeben, sodass die Daten
erneut an das nächste Skript verschickt werde können.

(tf)

Das ganze könnte z.B. so aussehen.

Formular 1:

<form method="post" action="formular_2.php">
<p>Name: <input type="text" name="name"><br>
Strasse: <input type="text" name="strasse"><br>
Plz/Ort: <input type="text" name="ort"><br><br>
<input type="submit" value="Weiter!"></p>
</form>


formular_2.php (mit der Funktion dyn_form())

<form method="post" action="send.php">
<p>Kreditinstitut: <input type="text" name="bank"><br>
Konto-Nr.: <input type="text" name="kto_nr"><br>
Blz: <input type="text" name="blz"><br><br>
<?php dyn_form(); ?> <!-- Aufruf der Funktion dyn_form()
-->
<input type="submit" value="absenden">
</p></form>


This entry was posted in PHP. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *