Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Programmierung mit PHP  Teil von  Formulare und PHP
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Dynamische Formulare




Die Formularelemente samt der Angabe der Werte wurden in den bisherigen Beispielen stets fest in die Formulare eingebunden. Es wäre sicher jedoch wesentlich praktischer, wenn man dies automatisieren und bestimmte Formularelemente dynamisch erzeugen könnte.

Es wäre sicherlich einen Versuch wert, die Auswahlliste dynamisch mithilfe einer Schleife zu erzeugen:

<html>
<head>
<title>Dynamische Mehrfach-Auswahl</title>
</head>
<body>
<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
  <p>
  <?php
    $themen = array("Autos","Filme","Essen","Sport");
  ?>
    <select name="thema[]" size="4" multiple>
  <?php
  foreach ($themen as $element) {
    echo "<option value=$element>$element</option>";
  }
  ?>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>

<?php
  if ($_POST['thema']) {
    echo "Es sind folgende Themen enthalten:<br>";
    foreach($_POST['thema'] as $element) {
      echo "$element<br>";
    }
  }
?>
</body>
</html>




Bild 4.2: Dynamisches Formular samt Ausgabe

Sollten Sie assoziative Arrays verwenden, können Sie die Indizes als Werte für die <option>-Tags einsetzen und den zugewiesenen Wert für die Anzeige verwenden.

Beispiel

<html>
<head>
<title>Dynamische Mehrfach-Auswahl</title>
</head>
<body>
<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
  <p>
  <?php
    $themen = array(
      "AU"=>"Autos",
      "FI"=>"Filme",
      "ES"=>"Essen",
      "SP"=>"Sport",
      "CO"=>"Computer"
    );
  ?>
    <select name="thema[]" size="<?php echo count($themen)?>" multiple>
  <?php
  foreach ($themen as $key=>$element) {
    echo "<option value='$key'>$element</option>";
  }
  ?>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>

<?php
  if ($_POST['thema']) {
    echo "Es sind folgende Themen enthalten:<br>";
    foreach($_POST['thema'] as $element) {
      echo "$element<br>";
    }
  }
?>
</body>
</html>



Die Auswahlliste wurde übrigens zusätzlich in der Länge (size) auf die Anzahl der Elemente angepasst.

Zur besseren Übersicht lassen sich solche dynamischen Bestandteile eines Formulars auch in externe Skripts auslagern.

Beispiel – function.inc.php
<?php

// Auswahlisten Funktion für Hobbies
function setze_hobbies() {
  $themen = array(
    "AU"=>"Autos",
    "FI"=>"Filme",
    "ES"=>"Essen",
    "SP"=>"Sport",
    "CO"=>"Computer"
  );
  foreach ($themen as $key=>$element) {
    echo "<option value=$key>$element</option>";
  }
}

// Ausgabe der ausgewählten Werte mithilfe des globalen
// Arrays $_POST
function form_ausgabe() {
  if ($_POST['thema']) {
    echo "Es sind folgende Themen enthalten:<br>";
    foreach($_POST['thema'] as $element) {
      echo "$element<br>";
    }
  }
}
?>
Die eigentliche Formulardatei, nennen wir sie dynform.php, stellt sich nun wesentlich übersichtlicher dar:
<?php include("./function.inc.php"); ?>
<html>
<head>
<title>Dynamische Mehrfach-Auswahl</title>
</head>
<body>
<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
  <p>
    <select name="thema[]" size="<?php echo count($themen)?>" multiple>
    <?php setze_hobbies(); ?>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<?php echo form_ausgabe(); ?>
</body>
</html>

Sie sollten vor allem auf die korrekte Schreibweise der ersten Codezeile der dynform.php-Datei achten.


 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner LeaseWeb Germany GmbH
Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt