HTML/HTTP und der ewige K(r)ampf mit den Checkboxen
Geizhals » Forum » Programmierung » HTML/HTTP und der ewige K(r)ampf mit den Checkboxen (11 Beiträge, 157 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
HTML/HTTP und der ewige K(r)ampf mit den Checkboxen
07.01.2005, 15:06:06
Hallo Leute!

Wie man weiß, werden "ungecheckte" Checkboxen (bzw. deren Values), nicht an den Server übermittelt.
D.h. man weiß eigentlich nicht, ob eine Checkbox jemals angeboten wurde, oder ob sie bloß "uncheckt" wurde.

Zur Verdeutlichung - ein kleines Beispiel:
Ein Programm zeigt Rechnungen an.
Ein Filter-Formular bietet diverseste Felder für die Selektion an (Zeitraum, Kunde, Name, Betragsbereich etc).
Je nach gesetztem Filter, bekommt man einen bestimmten Auszug aller Rechnungen.
Bei jeder Rechnung befindet sich eine Checkbox, die angibt, ob die Rechnung noch "offen" oder bereits "bezahlt" ist.
Wird eine noch "offene" Rechnung als "bezahlt" gekennzeichnet (checked), ist alles klar. Das Formularfeld "e_InvoiceId_4711=true" wird an den Server übertragen.
Wird eine "bezahlte" Rechnung auf "offen" gesetzt (unchecked), erfährt der Server davon gar nichts. Es wäre ja großartig, wenn der HTTP-Request zumindest "e_InvoiceId_4711=" übertragen würde. Dem ist aber nicht so.

Man ist also gezwungen, mit Tricks zu arbeiten, damit der Server erfährt, daß es "e_Invoice_4711" im Formular zur Auswahl gab, dieses aber nicht gecheckt wurde.

Ein solcher Trick wäre, alle angeboteten Rechnungen, nochmals als hidden-Fields mitzuführen. Was natürlich die Request-Größe verdoppelt.

Ein anderer wäre, vor dem Submit, via Javascript, alle ungecheckten Ckeckboxen auf "gecheckt" zu stellen, und deren Value auf "False" zu setzen.
Was natürlich nur noch mit aktivem Javascript funktioniert.

Ein gänzlich andere Methode ist die, Serverseitig sich die übertragenen Felder via Sessions zu merken und darauf zu referenzieren.
Was (zumindest an meiner) Ideologie verbeigeht, daß HTTP-Sessions völlig autonom sein müssen.

Kennt jemand von Euch vielleicht einen "Schmäh", der weniger "ja aber" mit sich bringt? ;-)

lg
Ingenico

Antworten PM Alle Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung