Knut: getelementbyGROUP

Beitrag lesen

Lieber Struppi,

wir hatten doch gesagt, es gibt zwei Varianten: gleicher Name und unterschiedlicher Wert, gleicher (Feld-!)Name und gleicher Wert. Das letzte hört sich nur im ersten Moment paradox, die Auflösung folgt unten. Aber genau damit startete der Thread. Wenn Du nun beide Varianten immer wieder durcheinander schmeißt, für die ganz unterschiedliche Prämissen gelten, verstehen wir uns irgendwann gar nicht mehr.

Ich rekapituliere kurz: Variante 1 ist völlig unproblematisch für Javascript, serverseitig nur mit ein bißchen Aufwand verbunden, anhand von Werten statt Indizes zu entscheiden, welche Checkbox aktiviert wurde. Stimmen wir soweit überein? Können wir den Fall im weiteren endlich außen vor lassen?

Schön und woher weißt du wieviele Elemente du hast?
in der üblichne Variante mit formular.elements['child_1'].length

Mit ein wenig Aufwand kann man das rauskriegen.

sage ich doch die ganze Zeit.

Dem habe ich doch auch nie widerpsrochen.

Perfekt für Javascript. Nichts gegen Perl, aber das ist ein klarer Vorteil von PHP.

wie gesagt das macht Perl in dem Falle auch ob mit oder ohne eckigen Klammern ein klarer Vorteil für Perl und es ist natürlich problemlos möglich eine solche Variante selber zu programmieren, es würde mich wundern wenn es dafür kein passendes Modul gibt.

Das macht Perl nicht. Kann es auch gar nicht, woher soll es wissen, welche Checkbox bei Fall 2 gemeint ist.

Arghl, der Punkt ist doch, warum soll es mehrere checkboxen geben, die den gleichen Wert und den gleichen Namen haben?

»»
Weil genau das die Ausgangslage war, ich erinnere an Deinen Code, den ich ergänzte

<input type="checkbox" name="child_1" value="zeigen">
<input type="checkbox" name="child_1" value="zeigen">
<input type="checkbox" name="child_1" value="zeigen">

Wenn die drei Zeilen für unterschiedliche Dinge (Name, Vorname, Adresse) stehen, dann kannst Du das nur über unterschiedliche Namen

<input type="checkbox" name="vorname" value="zeigen">

bzw.

<input type="checkbox" name="child_1_0" value="zeigen">

oder Felder unterscheiden

<input type="checkbox" name="child_1[0]" value="zeigen">

Wenn Du völlig unterschiedliche Namen wie

<input type="checkbox" name="vorname" value="zeigen">
<input type="checkbox" name="adresse" value="zeigen">

wird es schwierig, die Funktion "alle Felder per Klick selektieren" mittels Javascript zu verwirklichen, noch dazu wenn die Gruppe 2 dieselben Einträge aufweist. Nicht unmöglich, aber absolut kompliziert. Also bleiben nur (unechte!) Felder. Für Perl ist das, entgegen Deiner Behauptung, absolut zwingend, sonst kommen nur gleiche Namen und Werte an, und das wäre tatsächlich der gröbste Unfug.

Wie schon geschrieben in Perl braucht man die eckigen Klammern z.b. ...

manchmal

Man braucht sie immer nicht um gleichnamige Felder auszuwerten.

nicht

Man braucht sie im Fall 2 immer.