Zusammengebauter Namen von Checkboxen
Helmut
- php
0 Thorsten Olscha0 Auge0 AlexBausW
Good afternoon,
der Name (d.h. die Zahl hinter chkbx) der Checkboxen wird dynamisch
per Schleife ($i++) vergeben und soll anschliessend in einem PHP Script
weiter verarbeitet werden.
Eine erste Idee (von weiteren erfolglosen) war so ein Konstrukt:
$chkbx.$i
Wer weiss wie es richtig geht?
HTML:
<input type="checkbox" name="chkbx0" value="1">
<input type="checkbox" name="chkbx1" value="2">
<input type="checkbox" name="chkbx2" value="3">
<input type="checkbox" name="chkbx3" value="4">
<input type="checkbox" name="chkbx4" value="5">
<input type="checkbox" name="chkbx5" value="6">
PHP:
<?
for ($i=0 ; $i<=5; $i++) {
echo "$chkbx.$i<br>"; //so nicht!!!
?>
Gruss und Danke falls mir jemand hilft,
Helmut
Hallo Helmut!
Suchst du jetzt nach einer Lösung wie du es in die Html Formularseite reinschreibst oder nach einer Lösung es wieder per PHP auszulesen kannst?
Am Besten du schreibst mal dabei was du erreichen willst.
Um das was oben bei dir bei HTML steht zu schreiben müsstest du folgendes PHP schreiben:
for ($i=0 ; $i<=5; $i++) {
echo "chkbx".$i."<br>"; //so nicht!!!
}
bzw. komplett
for ($i=0 ; $i<=5; $i++) {
echo "<input type="checkbox" name="chkbx0".$i."" value="1"><br>"; //so nicht!!!
}
Gruesse
Thorsten
zweiter Versuch, aufs Wesentliche beschränkt:
Hallo Thorsten,
in Javascript kann man Variablen-Namen so zusammenbauen:
(im Prinzip string+integer)
function xyz) {
var i;
for(i=0; i <= 5; ++i) {
document.write("$chkbx" + i + "<br>");
}
}
wie geht das in PHP?
mein fehlversuch war so:
echo "$chkbx".$i."<br>";
Gruss,
Helmut
Hallo Helmut!
Suchst du jetzt nach einer Lösung wie du es in die Html Formularseite reinschreibst oder nach einer Lösung es wieder per PHP auszulesen kannst?
Am Besten du schreibst mal dabei was du erreichen willst.
Hallo Helmut!
Ich mach mir die Mühe und schreib dir den ganzen Code auf!
Dann liess ihn dir doch bitte genau durch. Ich habe die Lösung die du suchst in PHP geschrieben!
Wo genau ist die offene Frage?
Gruesse
Thorsten
Good afternoon,
der Name (d.h. die Zahl hinter chkbx) der Checkboxen wird dynamisch
per Schleife ($i++) vergeben und soll anschliessend in einem PHP Script
weiter verarbeitet werden.
Eine erste Idee (von weiteren erfolglosen) war so ein Konstrukt:
$chkbx.$i
Wer weiss wie es richtig geht?
HTML:
<input type="checkbox" name="chkbx0" value="1">
<input type="checkbox" name="chkbx1" value="2">
<input type="checkbox" name="chkbx2" value="3">
<input type="checkbox" name="chkbx3" value="4">
<input type="checkbox" name="chkbx4" value="5">
<input type="checkbox" name="chkbx5" value="6">
PHP:
<?
for ($i=0 ; $i<=5; $i++) {
echo "$chkbx.$i<br>"; //so nicht!!!
?>
Es gibt keine Variable $chkbx, nur $chkbx0 bis chkbx5,
die aus dem Formular übergeben werden.
Die kannst du in einem Array zusammenfassen
$chkbx = array(chkbx0,chkbx1,(usw. usf.));
Dann funktioniert auch die Schleife.
Ob das so gewünscht ist, weiß ich natürlich nicht,
da Du über die Funktion des Ganzen nichts hast verlauten lassen.
Tschüß, Auge
Hallo
der Name (d.h. die Zahl hinter chkbx) der Checkboxen wird dynamisch
per Schleife ($i++) vergeben und soll anschliessend in einem PHP Script
weiter verarbeitet werden.
Eine erste Idee (von weiteren erfolglosen) war so ein Konstrukt:
$chkbx.$i
Hmmm, zum einen kannst Du wie Thorsten geschrieben hat vorgehen.
Zum anderen wäre es aber vielleicht hilfreicher, fuer alle Checkboxen den gleichen Namen ('chkbx[]') zu verwenden. Dann erhältst Du in Javascript und in PHP jeweil ein Array, in dessen Elementen die Objekteigenschaften, bzw. die übergebenen Werte enthalten sind.
So kannst Du in Javascript mit:
for (i = 0; i < document.forms[0].elements['chkbx[]'].length; i++) {
if (document.forms[0].elements['chkbx[]'][i].checked)
alert(document.forms[0].elements['chkbx[]'][i].value);
}
die Werte aller angekreuzten Checkboxen auslesen.
In PHP sollte das in etwa so aussehen:
for ($i = 0; $i < count($_GET['chkbx']); $i++) {
echo 'Checkbox ' . $i . ' -> ' . $_GET['chkbx'][$i] . '<br>';
}
Diese Vorgehensweise ist imho einfacher, wenn Du nur die Werte, nicht aber deren "Reihenfolge" und "Position" brauchst, besonders wenn dem PHP-Skript die Zahl der übergebenen Checkboxen vorher nicht bekannt ist.
Gruß Alex
--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
Hallo Alex,
du hast mich verstanden - vielen Dank für deinen Tipp.
Was mir allerdings noch unklar ist, was soll der google-link am Ende?
Helmut
Zum anderen wäre es aber vielleicht hilfreicher, fuer alle Checkboxen den gleichen Namen ('chkbx[]') zu verwenden. Dann erhältst Du in Javascript und in PHP jeweil ein Array, in dessen Elementen die Objekteigenschaften, bzw. die übergebenen Werte enthalten sind.
So kannst Du in Javascript mit:
for (i = 0; i < document.forms[0].elements['chkbx[]'].length; i++) {
if (document.forms[0].elements['chkbx[]'][i].checked)
alert(document.forms[0].elements['chkbx[]'][i].value);
}
die Werte aller angekreuzten Checkboxen auslesen.
In PHP sollte das in etwa so aussehen:
for ($i = 0; $i < count($_GET['chkbx']); $i++) {
echo 'Checkbox ' . $i . ' -> ' . $_GET['chkbx'][$i] . '<br>';
}
Diese Vorgehensweise ist imho einfacher, wenn Du nur die Werte, nicht aber deren "Reihenfolge" und "Position" brauchst, besonders wenn dem PHP-Skript die Zahl der übergebenen Checkboxen vorher nicht bekannt ist.
Gruß Alex
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
Hallo
du hast mich verstanden - vielen Dank für deinen Tipp.
Gern geschehen. :)
Was mir allerdings noch unklar ist, was soll der google-link am Ende?
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
Das ist nur meine Signatur, um auf den häufigen Missbrauch des Wortes Standart hinzuweisen (vor allem, daß bereits der Duden [oder war es ein anderes Buch] als "Standartwerk" feil geboten wird ;))
Gruß Alex
P.S.: BTW: Deinen Quotingstil nennt man TOFU: "Text oben, Fullquote unten". Da aber der gesamte Text gespeichert und auch bei jedem Aufruf über das Netz übertragen wird, sollte nur das zitiert werden, auf das man sich bezieht, bzw. was zum Verständnis gerade noch notwendig ist. Kurze stichwortartige inhaltliche Zusammenfassungen in [eckigen Klammern] sind dabei hilfreich. :))
P.P.S.: Dies war keine Aktion des Ministeriums für Innere Forensicherheit, sondern nur ein gut gemeinter Hinweis von einem Poster (siehe auch -> Starschnitt ;)) zum Anderen. :)
--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart