Moin!
Ich habe eine Checkbox die über eine schleife den laufenden namen
checkbox+nr hat also fortlaufend
checkbox-149
checkbox-150
checkbox-151
usw
jeweils mit dem wert der nr also
checkbox-149 hat den wert 149
checkbox-150 hat den wert 150
checkbox-151 hat den wert 151
Ist das nicht reichlich redundant? Die Nummer steck sowohl im Namen, als auch im Wert. Ich nehme mal an, du generierst solchen HTML-Code:
<input type="checkbox" name="checkbox-149" value="149">
...
Diese Vorgehensweise ist suboptimal. Aber du kannst dich eines Tricks bedienen, der bei PHP gut funktioniert:
1. Möglichkeit: Wenn du (der Name deutet es an) ein Array als Ergebnis haben willst, dann kannst du der Checkbox einen Arraynamen geben:
<input type="checkbox" name="checkbox[149]" value="149 - oder was anderes">
Dann kriegst du in PHP ein Array namens $checkbox, welches an Position 149 den Wert "149 - oder was anderes" hat.
2. Wenn es dir nur darauf ankommt, dass du aus einer Reihe von Zahlen ein paar ankreuzen kannst, um mit diesen dann weiterzuarbeiten, wähle Variante 2:
<input type="checkbox" name="checkbox[]" value="149">
Dadurch erhälst du wieder ein Array $checkbox, welches aber vom Index Null beginnend aufgefüllt wird. Wenn Kästchen 149 das einzige angekreuzte Kästchen ist, besteht das Array aus:
$checkbox[0]=149;
Wenn auch noch Checkbox 163 angekreuzt ist, sieht es so aus:
$checkbox[0]=149;
$checkbox[1]=163;
Wenn auch Checkbox 10 angekreuzt ist:
$checkbox[0]=10;
$checkbox[1]=149;
$checkbox[2]=163;
In jedem Fall kannst du mit einer Schleife das gesamte Array durchgehen, alle Zahlen ermitteln und mit denen dann irgendwas machen.
Wenn du lieber deinen eigenen Ansatz mit dem zusammengesetzten Arraynamen weiterverfolgen willst (was ich nicht empfehle, weil es für sowas eben Arrays gibt):
$varname = "checkbox-".$nr;
echo $$varname; # gibt die Variable aus, deren Name in $varname steht.
- Sven Rautenberg