SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=188&group=32
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Formulare über mehrere Seiten


Wer von Ihnen bereits 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 übergeben werden. Dies kann recht aufwendig sein, da es meist über versteckte Formularfelder geschieht. Mit einer kleinen PHP-Funktion kann man die versteckten Formularfelder dynamisch erzeugen.

Beispiel – function.inc.php

<?php
function form_daten() {
  if (isset($_POST)) {
    foreach ($_POST as $key => $element) {
      echo "<input type=\"hidden\" name=\"$key\" value=\"$element\">";
    }
  }
  else {
    foreach ($_GET as $key => $element) {
      echo "<input type=\"hidden\" name=\"$key\" value=\"$element\">";
    }
  }
}
?>

Die Funktion form_daten() ist recht einfach aufgebaut. Die Bedingung prüft mithilfe der Funktion isset(), ob die jeweiligen Arrays gesetzt wurden. Anschließend wird das entsprechende superglobale Array $_POST oder $_GET durch die foreach-Schleife weiter verarbeitet. 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 werden können.

Beispiel – form1.php

<html>
<head>
<title>Formular – 1</title>
</head>
<body>
<form method="post" action="form2.php">
  <p>
    Vorname: <input type="text" name="vorname"><br>
    Nachname: <input type="text" name="nachname"><br>
    Strasse: <input type="text" name="strasse"><br>
    Ort: <input type="text" name="ort"><br>
    Plz: <input type="text" name="plz"><br>
  </p>
  <p>
    <input type="submit" name="Submit" value="Weiter...">
  </p>
  </form>
</body>
</html>

Beispiel – form2.php

<?php include("./function.inc.php"); ?>
<html>
<head>
<title>Formular – 2</title>
</head>
<body>
<form method="post" action="senden.php">
  <p>
  Kreditinstitut: <input type="text" name="bank"><br>
  BLZ: <input type="text" name="blz"><br>
  Konto-Nr.: <input type="text" name="kto_nr"><br>
  <?php form_daten(); ?>
  </p>
  <p>
  <input type="submit" value="absenden">
  </p>
</form>
</body>
</html>

Natürlich können Sie das Beispiel ohne Weiteres erweitern!