Verbelegte Formularfelder (Checkbox)
Bettina
- html
Hi!
Ich habe ein kleines Problem:
Ich habe ein Formular mit Checkboxfeldern.
Wenn Sie angekreuzt sind, soll in eine DB der Wert JA übertragen werden. Ich möchte nun, das wenn kein Hacken angekreuzt ist der Wert NEIN übertragen wird.
Hat ihr eine Ahnung wie das geht ?
Danke in vorraus!
Bettina
Hallo Bettina
Wenn Sie angekreuzt sind, soll in eine DB der Wert JA übertragen werden. Ich möchte nun, das wenn kein Hacken angekreuzt ist der Wert NEIN übertragen wird.
Hat ihr eine Ahnung wie das geht ?
Ich glaube, viele Leute haben die - allein schon, weil es unter http://selfhtml.teamone.de/html/formulare/auswahl.htm#checkboxen nachzulesen ist.
viele Gruesse
Stefan Muenz
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.
Siehe dazu:
http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onchange
http://selfhtml.teamone.de/javascript/objekte/elements.htm#checked
viele Gruesse
Stefan Muenz
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
Hallo Bettina
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...
ich würde das sowieso alles nicht mit javascript machen - da der kram ja in ne datenbank nachher reinkommt, geh ich mal davon aus, dass da noch ein übermittlungsprogramm davor steckt.
wenn wir nun davon ausgehen, das dieses welches progi in PHP geschrieben ist (oder PERL, Python, C... wie auch immer), ergibt sich folgende, simplere lösung:
programm-struktur:
in PHP sähe das dann so aus (optimiert!):
<?php
// check, if var set
if(!$var) {
$var = "NEIN";
}
// ... aufruf der datenbank bzw. weitere schritte
?>
cu, w0lf.