Hallo
Die Frage wird in ein paar Minuten eher lauten: wie erkenne ich, dass ich ein FALSE (oder eine 0) an die Datenbank übermitteln muss, wenn kein Checkbox-Parameter übertagen wurde?
Hier dachte ich daran, standartmäßig eine "NULL" zu verschicken, ausser eben die checkbox hat einen Wert.
wenn ich das richtig verstanden habe, werden Checkboxen ausschließlich übertragen beim POST, wenn sie gesetzt sind ?!
Das ist korrekt.
Wenn man statt kein Wert/ein Wert immer einen Wert (im Zweifelsfall einen definierten Nein-Wert, zum Beispiel 0
) haben will, benutzt man (je nach Anwendungsfall) statt der Checkbox(en) Radio-Buttons mit einem vordefiniertem Standardwert oder man benutzt zusätzlich zur Checkbox ein davorstehendes Hidden-Feld gleichen Namens mit dem Standardwert. Wird die Checkbox nicht aktiviert, wird der Wert des Hidden-felds übertragen, ist die Checkbox angeklickt, überschreibt ihr Wert den des Hidden-Felds.
<input type="hidden" name="agb-zustimmung" value="0">
<input type="checkbox" name="agb-zustimmung" id="id-agb" value="1"><label for="id-agb">ich stimme der AGB zu</label>
- beschaffe dir aus der Datenbank (Metadaten der Tabelle) die Spaltentypen
Was meinst du mit Spaltentypen?
Die Spalten der Datenbanktabelle haben Datentypen (zum Beispiel varchar
für Text, int
für Ganzzahlen, datetime
für ein Datum mit Uhrzeit). Das lässt sich bedingt automatisiert auf die HTML-Eingabefeldtypen übertragen. Wenn man selbst die Anwendung schreibt und die Strukturen nicht zu unübersichtlich sind, kann man diese Zuordnung (Feldtyp in der Datenbank zu Feldtyp des Eingabefelds im HTML-Quelltext) auch händisch vornehmen.
- prüfe bei der Antwort vom Client die Darstellbarkeit der Requestparameter im Zieltyp der Datenbanktabelle.
Auch hier stehe ich auf dem Schlauch
Selbes Vorgehen wie oben, nur umgekehrt (HTML nach Datenbank)
- beachte den Kontextwechsel und das passende Escaping
siehe eins oben drüber
Artikel zum Thema Kontextwechsel in unserem Wiki.
Checkboxen und Radios sollen fehlen? mhh
Nein, sie dürfen fehlen; zumindest Checkboxen dürfen das (wenn du nicht Vorkehrungen triffst).
Tschö, Auge
Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
Hohle Köpfe von Terry Pratchett