Markus: mehrere Checkboxen behandeln in If Funktion

Hi Leute!

Habe in einem Formular mehrere Checkboxen zum anklicken.. die den wert "true" liefern wenn sie angeklickt werden..

Dieser werd wird dann in eine Access-DB Spalte übertragen wird mit dem Feldtyp Ja/Nein.

mit:

<input type="checkbox" name="Garage" value="true">Garage
<input type="checkbox" name="Balkon" value="true">Balkon

und in die DB:

rs("Garage") = Request.Form("Garage")
rs("Balkon") = Request.Form("Balkon")

Funktioniert soweit gut soweit etwas angeklickt wird...

Wenn ich nichts anklicke kommt dann eine Fehlermeldung bei der Übertragung in das Feld..

Habe es jetzt zb für Garage so gelöst:

If Request.Form("Garage") = "true" then
rs("Garage") = Request.Form("Garage")
End if

Geht auch!

Wie baue ich nun in diese If Funktion mehrere Request Forms ein ohne für jedes einzelne Feld eine eigene If Funktion zu schreiben handelt sich um 6 andere Felder?

Wie realisiere ich das am besten (da ja jedes Feld unabhängig angeklickt werden kann)?

Danke

MFG
Markus

  1. Hi!

    Wie baue ich nun in diese If Funktion mehrere Request Forms ein ohne für jedes einzelne Feld eine eigene If Funktion zu schreiben handelt sich um 6 andere Felder?

    hm... ich mag ASP nicht sonderlich, aber... unter PHP würde ich es so lösen:

    Ich würde den Wert aller Checkboxen in ein Array schreiben (mit <input type="checkbox" name="checkbox[name]"... />) und ihn vom script anschließend in einer schleife wieder auslesen. Übergib als Key einfach den Namen der DB-Spalte, sollte ja kein Problem sein...

    Gruß,
    small-step

    1. Hi

      Arbeite aber leider nicht mit PHP und weiß leider nicht wie das in ASP aussehen könnte:

      Habs mal mit If u else-if probiert:

      If Request.Form("Garage") = "true" then
      rs("Garage") = Request.Form("Garage")

      Else If

      Request.Form("Balkon") = "true" then
      rs("Balkon") = Request.Form("Balkon")

      End if

      Geht aber leider nicht...

      MFG
      Markus

      1. Hi Markus,

        nein else if geht nicht, da es ja nur prüft wenn erste bedingung nicht erfüllt ist, die checkboxen sind aber unabhängig von einander. Du musst es entweder mittels array machen, wobei ich die methode nicht so gut finde oder du instanzierst wie ich gesagt habe ein neues objekt, dessen items du werte zuordnen kannst. Dann wandelst du das gesamte request.form objekt in das neue objekt um.

        for each item in request.form

        eignet sich sehr gut dazu eins zu eins die objekt struktur zu übernehmen.

        Gruß
        Netghost

        1. Hi

          Danke für deine Hilfe

          Weiß aber leider nicht praktisch wie ich da beginnen sollte?

          Wäre über eine praktische Hilfer sehr dankbar...

          for each item in request.form

          eignet sich sehr gut dazu eins zu eins die objekt struktur zu übernehmen.

          MFG
          Markus

          1. hi markus,

            später vielleicht, wenn ich an meinem rechner sitze. Aber wenn du recherchierts findest du es vielleicht, wie man ein neues objekt instanziert und diesem dann werte zuordnet. Du solltest auch versuchen dich zu informieren, wie man funktionen einbindet unter asp (vb-script), damit du diese abfragen nicht immer wiederholen musst.

            Gruß
            Netghost

      2. Hi,

        Arbeite aber leider nicht mit PHP und weiß leider nicht wie das in ASP aussehen könnte:

        macht nichts, ASP kann auch mit Arrays umgehen, wenn es einem das Leben auch unnötig erschwert und nicht gerade komfortabel ist. Und der html-Teil ist sowieso der gleiche.

        Ansatz: Du zählst die Keys des Arrays und lässt eine for, bzw. while-Schleife laufen. In dieser Schleife prüfst Du ob das Array checkbox mit dem jeweiligen Key leer ist oder nicht und lässt deine DB updaten falls nicht. Den Namen der Spalte hast du ja als Key vorliegen.

        Gruß,
        small-step

  2. Hi Markus

    If Request.Form("Garage") = "true" then
    rs("Garage") = Request.Form("Garage")
    End if

    Geht auch!

    Du kannst das ganze in eine Funktion schreiben, die du für jede Checkbox ausführst. Allerdings must du dann vorher das form.objekt in ein neues objekt umwandeln, das wertzuweisungen zulässt (zumindestens ist es mir unbekannt, wie ich einem request.form(feld) einen neuen wert zuweise) Dann schreibst du die funktion die den wert überprüft und notfalls neu zuweist und rufst sie für jede checkbox auf.

    Gruß
    netghost