Janko Wellmeier: Checkboxen werden nicht uebergeben

Hallo!
Ich bins nochmal. Ich hatte weiter unten eine Frage gestellt, ob es per SQL eine Möglichkeit gäbe Felder auf ihren Defaultwert zustellen.
In dieser Problematik (ich werde jetzt nicht alles wiederholen) habe ich nun heute einen Schritt nach vorne geschafft.
Wie das allerdings nunmal so ist. Bedeutet eine Antwort min. 10 neue Fragen.
Ich habe allerdings im Moment nur eine:

Wenn ich in einem Formular Checkboxen habe und dieses Formular an eine ASP-Seite abschicke, dann kommen nur die ausgewählten dort an.
Ich kann also auf die nicht ausgewählten Checkboxen nicht per:

For Each elem in Request.Form

zugreifen. Wohl aber auf nicht ausgefüllte Textfelder (leere Strings). Wie Ihr sehen könnt, versuche ich mein Problem zu umschiffen, indem ich zwischen den einzelnen Feldtypen unterscheide.
Es nützt mir allerdings nichts, wenn die ASP-Seite gar nicht weiß, daß ein Feld NICHT ausgewählt wurde.

Ich schreibe die ASP-Seiten überings in VB-Script!!

Ich hoffe, daß Ihr mir nochmal helfen könnt.

mfg
Janko

  1. Hallo,

    um das Problem zu lösen, solltest (bzw. mußt) Du die Checkbox beim Submit des Formulars per JavaScript überprüfen. Steht irgendwo in SelfHTML.
    Den ausgwählten kannst Du z.B. den Wert "True" zuweisen, den nicht ausgewählten den Wert "False".
    Danach aktivierst Du alle Checkboxen per JavaScript und sendest Dein Formular ab.

    Das dürfte es dann gewesen sein.

    Tschau, Stefan

  2. Hallo Janko

    Da nicht alle Checkboxen uebergeben werden, musst Du schon im Script wissen, welche es ueberhaupt gibt. Wenn ich micht richtig erinnere, hattest Du diesen Teil aber so allgemein gehalten, dass er mit mehreren Formularen verwendet werden kann. Sprich: Du hast die Info nicht.

    Eine Moeglichkeit waere vielleicht, Du definierst in einer Include-Datei (wahrscheinlich zusammen mit der Formular-Auswertung) zwei Variablen:
        dim cbc, cbv()
    cbc steht fuer Check-Box-Count, cbv fuer Check-Boxes-Vector (oder so aehnlich *g*). Ersteres soll die Anzahl der Checkboxen enthalten und mit 0 initialisiert werden, der Vektor (sprich Array) enthaelt die Namen der CB-Elemente. Nun kannst Du in jeder ASP-Datei festlegen, welche CB's es gibt:
        cbc = 3
        redim cbv(cbc)
        cbv(0) = "checkbox1" : cbv(1) = "checkbox2" : cbv(2) = "checkbox3"
    Jede ASP-Seite weiss ja hoffentlich fuer sich, welche Checkboxes es in dem formular gibt, das sie bearbeitet. Nun kann die zentrale Auswertungsroutine darauf zurueckgreifen.

    Calocybe

  3. Hallo!
    Ersteinmal vielen Dank an Alle, die mir geanwortet (auch weiter unten) oder sich einfach nur Gedanken gemacht haben.
    Ich habe das Problem nun einigermaßen gelöst und wollte hier (dem Archiv zu liebe) meine Lösung angeben.
    Stefans Weg habe ich nicht weiterverfolgt, da er auf JS basierte und somit nicht genügend Leute erreichte (trotzdem Danke). Mein Denkansatz ging in die Richtung von Calocybe. Ich habe in dem Formular ein hidden-field eingefügt, wo alle in dem Formular vorkommenden Checkboxen nacheinander mit ";" getrennt aufgezählt werden.
    Diesen Datenwust zerpflücke ich in der Include nun wieder und setze alle diese Checkboxen auf "0". Nun geht das Skript vor wie gewohnt. Alle markierten Checkboxen wurden ja übergeben und diese werden dann auch in der Datenbank markiert.
    Falls jemand Interesse zeigt, werde ich gerne das Skript rausgeben, im Moment ist es allerdings noch nicht ganz fertig.
    Also falls Ihr es haben wollt schreibt mich einfach an!

    Nochmals vielen Dank

    mfg
    Janko