Sven Rautenberg (off site): getelementbyGROUP

Beitrag lesen

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">

Dieser Code ist serverseitig - egal mit welcher Skriptsprache - nicht mehr sinnvoll auszuwerten! Jedenfalls wenn es darum geht, zu ermitteln, welche Checkboxen _exakt_ gewählt wurden.

Angenommen, es ist genau eine Checkbox ausgewählt, dann schickt der Browser: "child_1=zeigen".

Welche Checkbox war gewählt? Die erste, die zweite oder die dritte?

Zwei Fälle lassen sich natürlich trotzdem eindeutig auswerten:
1. Keine Checkbox ist gewählt - das klappt immer.
2. Alle Checkboxen sind gewählt - sofern man weiß, wieviele es insgesamt sind.

Aber jegliche Kombination aus "nur ein Teil der Checkboxen ist gewählt" wird scheitern, weil nicht ausgewählte Checkboxen eben vom Browser (standardgemäß!) überhaupt nicht in den Formulardaten auftauchen, man also nicht die Lücken der Checkboxen erhält, sondern nur die Summe der ausgewählten.

Um Checkboxen unterscheiden zu können, müssen sich also mindestens der Name _oder_ der Wert unterscheiden.

Und wenn's darum geht, funktional identische Checkboxen (hier: alle aktivieren die Anzeige der ihnen zugeordneten Spalte) zu benutzen, dann hat der Boxwert "ja" keine unterscheidungskräftige Aussage und kann problemlos zur Kennzeichnung des Spaltennamens verwendet werden.

Das wiederum erlaubt, den Checkboxen wirklich identische (im Sinne von HTML, Javascript, Perl, PHP, $whatever) Namen zu geben, um mit Javascript diese Boxgruppe als Array verarbeiten zu können.

Jede andere Lösung erscheint mir als extrem unsinnig, weil viel umständlicher. Bedingt sie doch Aussagen wie "Wenn's da noch nichts gibt, kann man es ja schnell schreiben" - ein Mehraufwand gegenüber den schon existierenden Lösungen.

- Sven Rautenberg