Sven Rautenberg: Verbelegte Formularfelder (Checkbox)

Beitrag lesen

Hallo Bettina

muss mich noch mal korrigieren - HTML-seitig kannst du nur einen Wert angeben, der uebertragen wird, wenn die Checkbox angekreuzt ist. Um das Gewuenschte zu erreichen, kannst du mit JavaScript arbeiten. Dazu belegst du erst mal alle Checkboxen mit value="NEIN" vor und setzt die value-Eigenschaft bei onChange je nachdem, ob die Checkbox gerade angekreuzt ist oder nicht, auf JA oder NEIN.

Ich glaube, da hast du ein wenig zuviel drüber nachgedacht...

Checkboxen werden nur übertragen, wenn sie angekreuzt sind. Wenn der Value geändert und übertragen werden soll, müssen die Boxen aber alle immer angekreuzt sein - nicht gerade sehr förderlich. ;)

Außerdem: Als Startbedingung würden ja nicht-angekreuzte Checkboxen mit "Nein" belegt, angekreuzte "checked"-Checkboxen mit "Ja". Ohne Aktion werden die Nein-Boxen nicht übertragen.

Ohne grundsätzliche Intervention mit Javascript, also Übertrag der Checkboxen in Hidden-Felder (abhängig von der Ankreuzung) vor dem Abschicken (onSubmit) geht es garnicht. Und natürlich auch ohne Javascript nicht.

Die sauberste Lösung ist, die "Nein"-Felder vom Auswerteskript erzeugen zu lassen. Gewöhnlicherweise sollte das Skript wissen, welche Felder alle vorhanden sind, und kann sie als Default schonmal auf "Nein" setzen. Die übertragenen Checkboxen werden dann mit "Ja" überschrieben, und alles in die Datenbank gepackt...

- Sven Rautenberg