doppelvariable
Soße
- php
0 Andreas0 Frank0 Sven Rautenberg
Halle,
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
bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
$checkbox149 mit dem wert=149
$checkbox150 mit dem wert=150
usw
wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
(die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
if($checkbox-$nr == $nr){
geht ja nicht, weil es 2 variablen sind.
wie macht man das ?
Danko
Hallihallo,
ich weiß es...
Schaun wir mal, wer Dir antwortet
A.
Halle,
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
bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
$checkbox149 mit dem wert=149
$checkbox150 mit dem wert=150
usw
wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
(die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
if($checkbox-$nr == $nr){
geht ja nicht, weil es 2 variablen sind.
wie macht man das ?
Danko
Hi,
die Checkbox heißt "checkbox-149" ?
ich würde ein Schleife über alle gesendeten Formularelemente vorschlagen und dann mittels SubString die Nummer daherkratzen.
Aber keine Ahnung, wie man dies genau in PHP täte. Ich wende aber ein ähnliches Schema bei gewissen ASP-Sites an.
Gruß, Frank
Halle,
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
bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
$checkbox149 mit dem wert=149
$checkbox150 mit dem wert=150
usw
wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
(die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
if($checkbox-$nr == $nr){
geht ja nicht, weil es 2 variablen sind.
wie macht man das ?
Danko
Hi,
die Checkbox heißt "checkbox-149" ?
ich würde ein Schleife über alle gesendeten Formularelemente vorschlagen und dann mittels SubString die Nummer daherkratzen.
warum so kompliziert???
so durchläufst du alle gesendeten checkboxen...
wenn du natürlich noch was anderes als checkboxen verwendest muss du doch "daherkratzen" (s.o.)
foreach ($HTTP_GET_VARS as $key => $value) {
echo "Schlüssel: $key; Wert: $value<br>\n";
}
Gruss
horst
Gebts zu ihr wisst es nicht:
Das ist doch wohl mal das komplizierteste von allen:
foreach ($HTTP_GET_VARS as $key => $value) {
echo "Schlüssel: $key; Wert: $value<br>\n";
}
ich löse auf (es war nur ein test):
<?php
$i =lo;
$line = "hal".$i;
$$line = 'so gehts !';
print "i= $i<br>";
print "line= $line<br>";
print "lline= $$line<br>";
print "hallo= $hallo<br>";
?>
ausgabe:
i= lo
line= hallo
lline = $hallo
hallo = so gehts !
!!!!!!!
einfach weltbewegend kleiner egofresser...
Zum Glück sind die Herbstferien ja bald zu Ende ...
<img src="/images/13.gif" width=468 height=60 border=0 alt="Don't feed the trolls">
Gebts zu ihr wisst es nicht:
Das ist doch wohl mal das komplizierteste von allen:
foreach ($HTTP_GET_VARS as $key => $value) {
echo "Schlüssel: $key; Wert: $value<br>\n";
}
ich löse auf (es war nur ein test):
<?php
$i =lo;
$line = "hal".$i;
$$line = 'so gehts !';
print "i= $i<br>";
print "line= $line<br>";
print "lline= $$line<br>";
print "hallo= $hallo<br>";
?>
ausgabe:
i= lo
line= hallo
lline = $hallo
hallo = so gehts !
das es variable variablennamen gibt weiss ich schon, bloss
wolltest du doch wissen wie man prüft welche variablen gesetzt sind
... wo liegt hier denn der vorteil/ ist es einfacher?
wo würdest du denn die variablen variablen anlegen?
und woher weisst du welche variablen variablen du anlegen musst??
da ja mehrere checkboxen aktiviert sein können...
hmmm
ich prüfe ob ein die jeweilige checkbox auch den jeweiligen wert hat und wenn keine checkboxen angeklickt wurden sind, dann kann die abfrage nur als false ausgehen und wenn was angeklickt wurde dann ist der wert der checkbox auch gleich der wert den ich in der abfrage abfrage und somit true.
ganz einfach.
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