Daten einer multiple Auswahlliste
Robert
- html
Hallo,
wenn ich in einem Formular eine multiple Auswahlliste habe und das Formular dann submitte.
Wie komm ich dann an die Daten ran?
über $_POST[nameAuswahlliste] bekomme ich immer nur 1 Option die ich markiert hatte, aber nicht alle.
Und gibt es eine Möglichkeit, dass ich die einzelnen markierten Optionen in einem String unterbringen kann, getrennt durch Komma?
Vielen Dank für eure Hilfe
Gruß
Robert
Hallo Robert,
wenn ich Dich richtig verstanden habe:
<input type="checkbox" name="checkboxarray[]" value="1">...
<input type="checkbox" name="checkboxarray[]" value="2">...
<input type="checkbox" name="checkboxarray[]" value="3">...
Auswerten mit PHP:
$count = count($_POST['checkboxarray']);
for($x=0; $x<$count; $x++)
{
echo $_POST['checkboxarray'][$x]."<br>";
}
Grüße
Mark
Hallo Robert,
wenn ich Dich richtig verstanden habe:
<input type="checkbox" name="checkboxarray[]" value="1">...
<input type="checkbox" name="checkboxarray[]" value="2">...
<input type="checkbox" name="checkboxarray[]" value="3">...
>
> Auswerten mit PHP:
>
> ~~~php
> $count = count($_POST['checkboxarray']);
> for($x=0; $x<$count; $x++)
> {
> echo $_POST['checkboxarray'][$x]."<br>";
> }
>
Grüße
Mark
Nein ich meinte:
<select name"auswahl" size=5 multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
...
</select>
wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
Wie lese ich es richtig aus?
P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht
echo $begrüßung;
Nein ich meinte:
<select name"auswahl" size=5 multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
...
</select>wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
Wie lese ich es richtig aus?
Wenn du dir ansiehst, was der Browser überträgt (stell mal dein Formular zum Testen auf GET um, dann siehst du es in der URL-Zeile), wirst du feststellen, dass ?auswahl=1&auswahl=2 übertragen wird. In $_GET/$_POST steht dann der zuletzt übertragene Wert, weil PHP beim Anlegen der $_GET/$_POST-Einträge den vorigen Wert mit gleichem Namen überschreibt. Es macht da nicht einfach so von sich aus ein Array aus dem ersten Wert und hängt dann den zweiten an. Das musst du ihm durch die Wahl eines dafür geeigneten name-Wertes mitteilen.
P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht
Das wirkt auch in deinem Fall (und steht auch in der PHP-FAQ beschrieben: How do I get all the results from a select multiple HTML tag?).
echo "$verabschiedung $name";
echo $begrüßung;
Nein ich meinte:
<select name"auswahl" size=5 multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
...
</select>wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
Wie lese ich es richtig aus?Wenn du dir ansiehst, was der Browser überträgt (stell mal dein Formular zum Testen auf GET um, dann siehst du es in der URL-Zeile), wirst du feststellen, dass ?auswahl=1&auswahl=2 übertragen wird. In $_GET/$_POST steht dann der zuletzt übertragene Wert, weil PHP beim Anlegen der $_GET/$_POST-Einträge den vorigen Wert mit gleichem Namen überschreibt. Es macht da nicht einfach so von sich aus ein Array aus dem ersten Wert und hängt dann den zweiten an. Das musst du ihm durch die Wahl eines dafür geeigneten name-Wertes mitteilen.
P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht
Das wirkt auch in deinem Fall (und steht auch in der PHP-FAQ beschrieben: How do I get all the results from a select multiple HTML tag?).
echo "$verabschiedung $name";
Hallo,
vielen Dank für die schnelle Hilfe. Ich bin halt noch Anfänger und bin mir dann oft nicht so sicher, wie etwas zusammenhängt und was man alles machen kann.
Gruß
Robert