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>


...

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Keine weiterführenden Beiträge.