Mailinglisten-Archive |
Hallo
> Ich habe ein Formular mit "n" Formularfeldern.
>
> Ich moechte diese nicht alle mit jeweils einem
> eigenen Namen benennen, sonder alle so benennen,
> dass ich danach ein Array habe (möglichst 1-
> Dimensional) das ich auswerten kann. Das funktio-
> Niert ja soweit auch schon ganz gut, wenn ich nur
> Textfelder oder dergleichen verwende. Dabei verwen-
> de ich zum Beispiel name="werte[]" in den form-
Um alle Formulardaten in einem Array zu erhalten:
<form method="post"..>
<input type... name="myformarray[feld1]"/>
<input type... name="myformarray[feld2]"/>
usw.
</form>
Dadurch erhältst Du im PHP nachher:
$_POST['myformarray']['feld1'];
$_POST['myformarray']['feld2'];
etc.
> Kann ich das umgehen? Ich brauche die Daten später
> in einer Schleife in der ich dann in etwa so arbeiten
> Kann:
Soweit ich weiß hast Du doch eine Liste von Radio-Button durch:
z.B.: <input type="radio" name="myformarray[radio1]" value="1"/> bla1
<input type="radio" name="myformarray[radio1]" value="2"/> bla2
bzw.
<input type="radio" name="radio1" value="1"/> bla1
<input type="radio" name="radio1" value="2"/> bla2
Dadurch hat oben myformarray[radio1] den Wert des selektierten
(z.b. bei Auswahl von bla1 den Wert 1) und unten analog radio1.
Bei einer Checkbox *können* mehrere Werte zu einer Variablen
gespeichert werden:
<input type="checkbox" name="check1" value="1"/> bla1
<input type="checkbox" name="check1" value="2"/> bla2
Daher wirds wohl immer ein Array sein.
> ...
> $numfields = count($werte);
> While ($i < $numfields) {
> echo "Feld nummer $i hat den Wert " . $werte[$i] . "<BR>";
> };
> ...
Ich empfehle Dir für den Zweck folgendes:
foreach ($_POST['myformarray'] AS $feldname => $feldwert) {
echo "Feld '" . $feldname . "' hat den Wert " . $feldwert .
"<br/>\n";
}
1) die Anzahl der Felder ist egal
2) Du hast einen direkten Bezug von Feld-name zu Wert
durch das assoziative Array
Gruß
Dennis
php::bar PHP Wiki - Listenarchive