Jana H. : Checkbox: State disabled / not-checked unterscheiden bei Post

Hallöchen,

mal eine wahrscheinlich etwas dumme Frage :-(

Kann man es erzwingen, dass der Zustand einer Checkbox (on/off) innerhalb eines Formulars stets bei einer Post-Message übertragen wird?

Mein Problem ist, dass ich die Daten, die via Post-Message übertragen werden, weiter-verarbeiten muss und zwischenspeichern muss. Diese Checkbox kann drei States einnehmen: checked (eindeutig), not-checked und disabled. In den beiden letzteren Fällen wird per default nichts an den Server bei einer Post-Messag übertragen.

Jetzt kann ich das Programm (Server) mit einer gewissen Intelligenz áusstatten, die weiß, wenn Editbox xyz z.B. nicht disabled ist, dann ist die Checkbox auch nicht disabled; darausfolgt, wenn der State der Checkbox nicht übertragen wird, so muss diese "not-checked" sein. Alle anderen States (checked, disabled) wären dann ausgeschlossen.

Diese Intelligenz ist aber nicht wartungsfreundlich. Daher suche ich nach einer anderen Möglichkeit. z.B. dass im "not-checked" State <name>off gesendet wird bei einer Post-Message.

Ich hoffe Ihr versteht mein Problem :-)

Gruß
Jana

  1. Liebe Jana,

    "disabled" ist von Serverseite wie "not-checked".

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Liebe Jana,

      "disabled" ist von Serverseite wie "not-checked".

      Liebe Grüße,

      Felix Riesterer.

      Ich weiß Felix, das ist ja genau mein Problem. Kann ich das irgendwie umgehen ohne viel Aufwand betreiben zu müssen?

      LG
      Jana

      1. "disabled" ist von Serverseite wie "not-checked".

        Liebe Grüße,

        Felix Riesterer.

        Ich weiß Felix, das ist ja genau mein Problem. Kann ich das irgendwie umgehen ohne viel Aufwand betreiben zu müssen?

        Eine Checkbox ist dafür ein ungeeignetes Instrument. Besser wäre es, du würdest zwei Radioboxen verwenden.

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
  2. Hi,

    Diese Checkbox kann drei States einnehmen: checked (eindeutig), not-checked und disabled.

    nein, zwei mal zwei Stati[1]: checked und not-checked, *jeweils* entweder disabled oder not-disabled. Nur in einem einzigen dieser vier Kombinationen gilt das Formularelement als "successful" und wird übertragen. Alle anderen drei Fälle sind für die Übertragung identisch damit, das Formularelement wegzulassen.

    In den beiden letzteren Fällen wird per default nichts an den Server bei einer Post-Messag übertragen.

    Nicht per Default, sondern per Zwang. Es *muss* so sein, andernfalls hört das Universum so wie wir es kennen auf zu existieren.

    Diese Intelligenz ist aber nicht wartungsfreundlich. Daher suche ich nach einer anderen Möglichkeit. z.B. dass im "not-checked" State <name>off gesendet wird bei einer Post-Message.

    Trenne den Zustand "disabled" in ein anderes Formularelement ab.

    Cheatah

    [1] Der Plural von Status ist zwar Status mit langem "u", aber falsches Latein erleichtert hier die Unterscheidung ...

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      [1] Der Plural von Status ist zwar Status mit langem "u", aber falsches Latein erleichtert hier die Unterscheidung ...

      das stimmt wohl, aber ich fand "States" hier eigentlich recht geschickt gewählt, auch wenn ich sonst eher gegen einen Deutsch-Englisch-Mix bin. Immer noch besser als "Statusse", das habe ich nämlich auch schon gelesen.

      Als Elektroniker *und* Informatiker kann ich übrigens den Wunsch nach der eindeutigen Erkennung des dritten Zustands "disabled" durchaus nachvollziehen. In der Digitaltechnik gibt es viele Anwendungen, wo digitale Ausgänge von Logikbausteinen drei Zustände annehmen können: Low, High, und hochohmig, also ohne Auswirkung. So kann man beispielsweise mehrere "Sender" auf eine Leitung zusammenschalten, wenn vereinbart wird, dass alle, die gerade nichts zu sagen haben, ihren Ausgang auf hochohmig schalten. Diese Ausgänge heißen treffenderweise auch "Tri-State".

      However, HTML-Formularelemente sind nicht so definiert, that's just the way it is.

      So long,
       Martin

      --
      PCMCIA: People Can't Memorize Computer Industry Acronyms
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hi,

        das stimmt wohl, aber ich fand "States" hier eigentlich recht geschickt gewählt, auch wenn ich sonst eher gegen einen Deutsch-Englisch-Mix bin. Immer noch besser als "Statusse", das habe ich nämlich auch schon gelesen.

        Statussis wäre doch auch nicht schlecht.

        Ein Kollege hat vor kurzem mal von Statusen geschrieben ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
      2. Lieber Martin,

        digitale Ausgänge von Logikbausteinen drei Zustände annehmen können: Low, High, und hochohmig

        und ich dachte diese drei wären "Spannung", "keine Spannung" und "kaputt"...

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      3. Hi,

        [1] Der Plural von Status ist zwar Status mit langem "u", aber falsches Latein erleichtert hier die Unterscheidung ...
        das stimmt wohl, aber ich fand "States" hier eigentlich recht geschickt gewählt,

        ja, ich hatte das auch als Erklärung gemeint, nicht als Kritik.

        Immer noch besser als "Statusse", das habe ich nämlich auch schon gelesen.

        Sehr schön ist es auch, wenn jemand statt dessen von "Statuten" redet ...

        Als Elektroniker *und* Informatiker kann ich übrigens den Wunsch nach der eindeutigen Erkennung des dritten Zustands "disabled" durchaus nachvollziehen.

        Ich nicht, aber ich kann den Wunsch nach der Erkennung der zweiten Eigenschaft "disabled" verstehen.

        In der Digitaltechnik gibt es viele Anwendungen, wo digitale Ausgänge von Logikbausteinen drei Zustände annehmen können: Low, High, und hochohmig, also ohne Auswirkung.

        Die Quanteninformatik wird vier Zustände kennen: Ja, Nein, Vielleicht und Schleudersitz. Ich freue mich schon auf die Programmierung, wird sicher eine spannende Sache - und nebenberuflich kann ich Versicherungen verkaufen. Cool.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  3. Hi!

    Kann man es erzwingen, dass der Zustand einer Checkbox (on/off) innerhalb eines Formulars stets bei einer Post-Message übertragen wird?

    Nein. Damit ein name-value-Pärchen eines Form-Controls übertragen wird, gibt es Festlegungen in der HTML-Spezifikation (4.01). Nur successful (erfolgreiche) Controls werden übertragen. Controls, die disabled sind, sind nie successful. Angehakte Checkboxen können successful sein. Mehr steht dazu nicht. Nicht angehakte Checkboxen werden üblicherweise genauso wie auf disabled gesetzte nicht übertragen. Damit lässt sich keine Unterscheidung treffen.

    Es gibt für PHP den Trick, ein Hidden-Control mit selbem Namen vor der Checkbox zu notieren. Die Checkbox überschreibt dann den Hidden-Wert oder auch nicht. Der Trick geht in anderen Systemen nicht so, weil zwei Werte mit selbem Namen sich da meist nicht überscheiben sondern ein Array mit beiden Werten bilden oder anderes. Für disabled wäre dann das Hidden-Element ebenfalls auf disabled zu setzen oder ganz wegzulassen.

    Anders sieht die Geschichte bei Verwendung von Javascript aus, da kannst du ja alles machen was du willst, disabled setzen/entfernen, bei der Checkbox und beim Hidden, Hidden mit Default-Wert hinzufügen, ...

    Lo!

    1. Hi!

      Anders sieht die Geschichte bei Verwendung von Javascript aus, da kannst du ja alles machen was du willst, disabled setzen/entfernen, bei der Checkbox und beim Hidden, Hidden mit Default-Wert hinzufügen, ...

      Lo!

      Hi,

      wie würde denn eine Lösung mit Javascript aussehen? Bzw. nach welchen Stichpunkten kann ich suchen, um selbst auf diese Lösung zu kommen? Funktionsaufruf bei Klicken auf den Submit-Button und den State der Checkbox überprüfen... aber dann?

      Gerade das übertragen dieses Zustands im Formular selbst, ist mir nicht ganz klar.

      Gruß
      Jana

      1. Hi!

        wie würde denn eine Lösung mit Javascript aussehen? Bzw. nach welchen Stichpunkten kann ich suchen, um selbst auf diese Lösung zu kommen? Funktionsaufruf bei Klicken auf den Submit-Button und den State der Checkbox überprüfen... aber dann?
        Gerade das übertragen dieses Zustands im Formular selbst, ist mir nicht ganz klar.

        Nun, was in einem Formular wird denn übertragen? input-, select- und textarea-Elemente. Die letzten beiden haben ihre eigene Aufgabe, bleibt nur das input-Element. Sorge dafür, dass input-Elemente mit passenden name-value-Pärchen im Formular existieren, wofür sich der hidden-Typ gut eignet, weil er keine sichtbaren Veränderungen vornimmt. Das geht zum Beispiel über DOM-Manipulation.

        Lo!