Zusammenspiel Checkboxen, Javascript und PHP

pchilfe

Erfahrenes Mitglied
Liebe Freunde,

Ich habe folgendes Problem:
Ich habe ein Formular mit sämtlichen Checkboxen erstellt.
Jede Checkbox erhält den gleichen Namen - aber einen anderen Wert (value).

Damit ich in PHP die Werte mit dem selben Checkbox-Namen auseinander halten kann,
muss ich hinter dem Checkbox-Namen --> [] <-- eckige Klammern schreiben, damit PHP das als Array() bzw. Variable erkennt.

Es gibt aber zusätzlich eine Javascript mit for-Schleife, die alle Checkboxen auf einmal auswählt.

Mein problem ist:
Wenn ich den Name der Checkboxen name='cbx' mit eckige Klammern ändere, name='cbx[]' funktioniert mein Javascript nicht aber mein PHP-Script. Wenn ich den Name name='cbx' behalte, funktioniert mein Javascript nicht, aber mein PHP-Script.

Wie kann ich den Name der Checkboxen so ändern, so dass beide Scripte funktionieren.

In Javascript gibt es die Anweisung:

Code:
document.FrFormula.cbx[][i].checked=true .....

erhalte ich die Fehlermeldung:
Code:
document.FrFormula.cbx[][i] ist Null oder kein Objekt. aber mit der Anweisung
document.FrFormula.cbx[i] geht es wieder :-(
Hat jemand eine Idee?

Vielen Dank im Vorraus.
 
Ich weiß jetzt nicht, ob das auch sicher funktioniert, aber man könnte schon bei der Ausgabe der HTML-Seite die Checkboxen vollständig benennen, oder?
Beispielresultat:
HTML:
<input type="checkbox" value="abc" name="cbx[0][1]">

Ansonsten würde ich vielleicht noch mit JavaScript tricksen - z.B. die Checkboxen nicht anhand ihres Namens ansprechen, sondern ihrer Stellung im DOM oder anderer Methoden (getElementsByTagName zum Bleistift)...
 
Danke sehr für deine Antwort Ceppi.

Ich versuchte das Javascript mit getElementById zu tricksen.

Das funktionierende Javascript sieht so aus:

Dabei wird den Name der Checkboxen angesprochen.

Code:
function ChBoxFr() {
   var cntr =false;
   for(var i=0;i<document.FrEditPersonlich.cbFremdSprachen.length;i++){
      if(document.FrEditPersonlich.cbFremdSprachen[i].checked)
         cntr = true;
         document.FrEditPersonlich.chbxFr.checked = !cntr;
        }
      }

Javascript mit getElementById:


Code:
function ChBoxFr() {
   var cntr =false;

   var FrSprach = document.getElementById("FrSprach");

   for(var i=0;i<document.FrEditPersonlich.FrSprach.length;i++){
      if(document.FrEditPersonlich.FrSprach[i].checked)
         cntr = true;
         document.FrEditPersonlich.chbxFr.checked = !cntr;
        }
      }

Ich erhalte eine Fehlermeldung "Objekt ist erforderlich" bei der Anweisung:

Code:
document.FrEditPersonlich.FrSprach[i].checked

wie kann ich getElementById in der Forschleife verwenden

Danke für jede Hilfe
 
Hallo Sven,

Tausand Danke schön für deinen Hinweis. Es funktioniert. Javascript und PHP funktionieren perfekt.

Danke Danke Danke :)
 

Neue Beiträge

Zurück