Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Formulare und PHP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


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


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Dynamische Formulare




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

Es wäre sicherlich einen Versuch wert, die Auswahlliste dynamisch mit Hilfe 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 ($thema) {
        echo 
"Es sind folgende Themen enthalten:<br>";
        foreach(
$thema as $element) {
            echo 
"$element<br>";
        }
    }
?>
</body>
</html>




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 ($thema) {
        echo 
"Es sind folgende Themen enthalten:<br>";
        foreach(
$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 Skripte 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 mit Hilfe 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 Formular-Datei, 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 erste Codezeile der dynform.php Datei achten.

Hinweis: Wesentlich interessanter wird die Erzeugung von dynamischen Formularen in Verbindung mit Datenbanken. Hierzu erfahren Sie mehr in dem Kapitel "PHP & MySQL Anwendungen".



 


Formularelemente auf Existenz prüfen
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de