hawkmaster: Mehrere Checkboxen auswählen (Array)

Hallo zusammen,
ich habe auf einem Formular mehere Checkboxen untereinander. Mit einem Click sollen alle angewählt (checked) werden können.
Wenn die Checkboxen so heissen:
<input name="chk_sorten"
und es gibt ein Button mit;
onClick="this.value=check(this.form.chk_sorten)
klappt das mit unten stehender JS Funktion.

Ich muss aber verschiedene Values der Checkboxen mit PHP auswerten. Daher brauche ich den Namen der Checkboxen als Array.
<input name="chk_sorten[]"

und nun geht diese Funktion nicht mehr.
Hat hier jemand eine Idee?

function check(field) {
if (checkflag == "false") {
  for (i = 0; i < field.length; i++) {
  field[i].checked = true;}
  checkflag = "true";
  return " keine "; }
else {
  for (i = 0; i < field.length; i++) {
  field[i].checked = false; }
  checkflag = "false";
  return " alle "; }
}

vielen Dank und viele Grüße
hawk

  1. Mahlzeit hawkmaster,

    onClick="this.value=check(this.form.chk_sorten)

    Was spricht gegen

    onclick="this.value=check(this.form.[ref:self812;javascript/objekte/elements.htm@title=elements]['chk_sorten[]']);"

    ?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo Ekki, hallo Martin,

      onclick="this.value=check(this.form.[ref:self812;javascript/objekte/elements.htm@title=elements]['chk_sorten[]']);"

      Tausend Dank euch beiden. Das war die Lösung.
      Einfacher als ich dachte ;-)

      vielen Dank und viele Grüße
      hawk

  2. Hallo,

    ich habe auf einem Formular mehere Checkboxen untereinander. Mit einem Click sollen alle angewählt (checked) werden können.
    Wenn die Checkboxen so heissen:
    <input name="chk_sorten"
    und es gibt ein Button mit;
    onClick="this.value=check(this.form.chk_sorten)

    ... dann ist das schlecht, weil es eigentlich "onclick" heißen sollte.

    Ich muss aber verschiedene Values der Checkboxen mit PHP auswerten. Daher brauche ich den Namen der Checkboxen als Array.
    <input name="chk_sorten[]"
    und nun geht diese Funktion nicht mehr.

    Doch, an sich schon - du musst nur das Checkbox-Array wieder korrekt an die Funktion übergeben.
    Der Name(!) der Checkboxen lautet ja nun "chk_sorten[]", und aufgrund der Sonderzeichen im Namen musst du ihn nun als String angeben:

    this.form.elements["chk_sorten[]"]

    Ich bin mir nicht sicher, ob hier auch die verkürzte Form

    this.form["chk_sorten[]"]

    möglich ist. Siehe auch Schema 4 zur Adressierung von Eigenschaften eines Objekts.

    if (checkflag == "false") {

    Warum verwendest du hier "false" als String? Das ist nicht nur ungewöhnlich, sondern auch unpraktisch. Verwende doch direkt einen boolschen Wert, dann kannst du die Abfrage direkt als

    if (checkflag)

    oder eben negiert als

    if (!checkflag)

    formulieren.

    So long,
     Martin

    --
    Drei Sachen vergesse ich immer wieder: Telefonnummern, Geburtstage und ... äääh ...