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:
 



 

Fragen zu Formularelemente




In diesem Abschnitt wollen wir einige der Formularelemente genauer betrachten.


Verarbeitung von Checkboxen

Wenn die Checkboxen nicht markiert sind, werden sie überhaupt nicht übermittelt. Andernfalls haben sie den im Attribut value angegebenen Wert. Man kann die Elemente auf die folgenden beiden Arten erzeugen:


# Fall 1: Verschiedene Namen, gleicher Wert
<input type="checkbox" name="cb[1]" value="yes" />
<input type="checkbox" name="cb[2]" value="yes" />

# Fall 2: "Gleiche" Namen, verschiedene Werte
<input type="checkbox" name="cb[]" value="1" />
<input type="checkbox" name="cb[]" value="2" />



Die Abfrage erfolgt in beiden Fällen mit:


if (isset($_REQUEST['cb'])) {
  reset($_REQUEST['cb']);
  foreach ($_REQUEST['cb'] as $key=>$element) {
    echo "$key: $element<br>";
  }
} else {
  echo "Keine Checkboxen<br>";
}



Im Fall 1 wertet man die Variable $key aus, im Fall 2 die Variable $element. Entscheidend ist auch hier, dass der Variablennamen bei mehr als einer Checkbox mit [] endet, damit in PHP ein Array zur Verfügung steht.


Verarbeitung von Radiobuttons

Radio-Buttons verhalten sich analog zu Checkboxen, mit der Ausnahme, dass hier eine Mehrfachauswahl nicht möglich ist. Beim Erstellen des HTML-Codes sollte darauf geachtet werden, dass zusammengehörige Buttons den gleichen Namen haben müssen.


<?php
  $farben 
= array(
    array(
'name' => 'grün''value' => 'g'),
    array(
'name' => 'blau''value' => 'b'),
    array(
'name' => 'rot',  'value' => 'r')
);
foreach (
$farben as $element) {
    echo
    
printf('<input type="radio" name="farbe" value="%s" %s/> %s<br />',
        
$element['value'],
        (isset(
$_REQUEST['farbe']) and $_REQUEST['farbe'] == $element['value']) ? 'checked="checked" ' '',
        
$element['name']
    );
}
?>




Verarbeitung von Submit

Um die Aktivierung einer Submit-Schaltfläche zu überprüfen muss dieser über einen Namen verfügen.

<input type="submit" name="submit" value="Senden">

Anschliessend ist bei einem Mausklick oder einem Tastendruck auf die Submit-Schaltfläche eine Variable mit dem Namen der Schaltfläche vorhanden:

if (isset($_REQUEST['submit'])) { ... }

Soll es um die Verarbeitung von mehr als einer Submit-Schalfläche gehen, stehen Ihnen mehrere Optionen zur Verfügung:
. Haben die Schaltflächen den gleichen Namen, kann man den value auswerten; die PHP-Variable heißt so wie die Schaltfläche ($_REQUEST['submit']).
. Haben die Schaltflächen unterschiedliche Namen, erhält man je nach betätigter Schaltfläche eine Variable mit anderem Namen registriert; mit isset() kann man prüfen, ob eine bestimmte Variable vorhanden ist, d.h. ob eine bestimmte Schaltfläche angeklickt wurde.
. Benennt man die Schaltflächen in der Array-Schreibweise, z.B. name="submit[0]", wobei zwischen den eckigen Klammern eindeutige Werte stehen müssen, erhält man in PHP ein Array mit genau einem Element; der Schlüssel (Key) dieses Elements ist die aktivierte Schaltfläche.


Verarbeitung von Reset

Zunächst sollte man überlegen, ob man überhaupt einen Reset-Schalter benötigt. Bei einer HTML-Reset-Schaltfläche setzt der Browser alle Eingabefelder auf den Anfangszustand zurück; da damit kein Request an den Server verbunden ist, kriegt PHP davon nichts mit. Möchte man einen Button realisieren, der Eingabeelemente mit vordefinierten Inhalten wirklich löscht, muss man eine Submit-Schaltfläche verwenden:


<?php
  
if (isset($_REQUEST['loeschen'])) {
      unset(
$_REQUEST['eingabe']);
  }
?>





<form method="post" action="<?php echo $PHP_SELF ?>" >
<input type="text" name="eingabe" value="<?php @print $_REQUEST['eingabe']; ?>">
<input type="submit" name="submit" value="Absenden">
<input type="reset" value="Reset">
<input type="submit" name="loeschen" value="Löschen">
</form>




 


Formulare über mehrere Seiten
 




 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