Der-Dennis: HTML - POST leer bei input disabled?

Hallo zusammen,

hab eine kurze Frage an Euch: Ich habe in einem Formular folgendes Input-Feld:

<input type="text" id="contact:subject" name="contact[subject]" value="Booking" disabled="disabled" />

Nach dem Absenden des Formulars via POST ist die Variable $_POST['contact']['subject'] leer.

Der Doctype des (X-)HTML-Dokuments ist:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Ohne disabled="disabled" wird die POST-Variable ganz normal gefüllt; mit ist sie wie gesagt leer bzw. NULL (var_dump($_POST['contact']['subject']) ergibt NULL).

Weiß jemand, was es damit auf sich hat?

Gruß und vielen Dank im Voraus, Dennis

  1. Hi,

    Weiß jemand, was es damit auf sich hat?

    disabled ist genau das, was es besagt: das Feld ist nicht aktiv und wird auch nicht übermittelt.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  2. Hi!

    <input type="text" id="contact:subject" name="contact[subject]" value="Booking" disabled="disabled" />
    Nach dem Absenden des Formulars via POST ist die Variable $_POST['contact']['subject'] leer.

    Sie ist nicht leer, sie existiert nicht. Und das gehört so: HTML 4.01-Spezifikation / Forms genauer unter "Successfull controls" der erste Punkt.

    Lo!

  3. Vielen Dank für Eure schnellen Antworten. Das hilft mir wirklich weiter. Also wird disabled gestrichen :-)

    Gruß, Dennis

  4. hab eine kurze Frage an Euch: Ich habe in einem Formular folgendes Input-Feld:

    <input type="text" id="contact:subject" name="contact[subject]" value="Booking" disabled="disabled" />

    Nach dem Absenden des Formulars via POST ist die Variable $_POST['contact']['subject'] leer.

    works as designed.
    Du suchst readonly

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Du suchst readonly

      Super! Wirklich genau das, was ich gesucht hab. Vielen Dank dafür! Readonly kannte ich noch gar nicht.

      Wenn's noch jemand sucht und wie ich zu blöd ist es zu finden: <http://de.selfhtml.org/html/formulare/eingabe.htm#nurlesen@title=SelfHTML - Eingabefelder und Eingabebereiche auf "nur lesen" setzen>

      Gruß, Dennis

  5. Hallo,

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    bist du dir sicher, dass du XHTML 1.1 nutzen willst, mit allen Konsequenzen? Oder doch lieber XHTML 1.0?

    So long,
     Martin

    --
    Der Gast geht solange zum Tresen, bis er bricht.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hey Martin,

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
          "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

      bist du dir sicher, dass du XHTML 1.1 nutzen willst, mit allen Konsequenzen? Oder doch lieber XHTML 1.0?

      Welche Gründe gibt es denn, XHTML 1.1 nicht zu nutzen?

      Gruß, Dennis

      1. Tach,

        Welche Gründe gibt es denn, XHTML 1.1 nicht zu nutzen?

        http://forum.de.selfhtml.org/archiv/2009/1/t182428/ ff.

        mfg
        Woodfighter

      2. Hi,

        Welche Gründe gibt es denn, XHTML 1.1 nicht zu nutzen?

        Das kannst du bitte im Archiv recherchieren.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Welche Gründe gibt es denn, XHTML 1.1 nicht zu nutzen?

          Das kannst du bitte im Archiv recherchieren.

          Habe ich jetzt ausgiebig getan. Habe nach »XHTML 1.1« im Archiv gesucht und viele Postings gefunden, die auf die Frage, was die Nachteile von XHTML 1.1 seien, antworteten, das Archiv sei »voll davon«. Ferner fand ich: Die besagten Gründe seien im Archiv zu recherchieren. Und so weiter. Die Spannung stieg und stieg!

          Ich bin Archiv-Links gefolgt, habe darin Archiv-Links gefunden, die auf Archiv-Postings verlinkt haben. Ständig wurde davon geredet, dass XHTML 1.1 keine Vorteile, aber gravierende Nachteilen bringt (wenn man nicht gerade Ruby braucht - mit HTML5 löst sich auf).

          Diejenigen Postings, die konkret wurden, nannten das Abraten von text/html (mittlerweile aufgehoben), Imagemap-Änderungen (mittlerweile aufgehoben), sowie das lang-Attribut (im Validator aufgehoben).

          Okay. Wieso muss man jemanden für eine solch triviale Info auf eine Odyssee durchs Forumsarchiv schicken, wo man hauptsächlich Verweise und veraltete Infos findet? Ich vermute ehrlich gesagt: Man hat sich vor vielen Jahren die Meinung angeeignet, dass XHTML 1.1 irgendwie pfui-bäh ist, aber warum, weiß man nicht mehr, und wenn jemand fragt, dann verweist man kurzerhand aufs Archiv, anstatt es kompakt zu erklären.

          Mathias

          1. @@molily:

            nuqneH

            Ich bin Archiv-Links gefolgt, habe darin Archiv-Links gefunden, die auf Archiv-Postings verlinkt haben.

            Du brauchst den Passierschein A 38, den gibt es auf Antrag.

            Ich vermute ehrlich gesagt: Man hat sich vor vielen Jahren die Meinung angeeignet, dass XHTML 1.1 irgendwie pfui-bäh ist, aber warum, weiß man nicht mehr

            Ich vermute: XHTML 1.1 kann durchaus sinnvoll sein, bspw. in Verbindung mit RDFa.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. Ich vermute: XHTML 1.1 kann durchaus sinnvoll sein, bspw. in Verbindung mit RDFa.

              Ich würde da einfach (X)HTML5 + RDFa 1.1 nehmen; da spart man sich die Verwirrung mit den XHTML-1.1+Irgendwas-Doctypes.

      3. Danke für Eure Hinweise. Damit werde ich mal näher beschäftigen.

        Gruß, Dennis

    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
          "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

      bist du dir sicher, dass du XHTML 1.1 nutzen willst, mit allen Konsequenzen? Oder doch lieber XHTML 1.0?

      Wirkliche praktische Konsequenzen hat der DOCTYPE erst einmal nicht. Schließlich wird das Dokument bei text/html immer gleich verarbeitet, solange der DOCTYPE den Standard-Modus auslöst.

      Auswirkungen hat es, wenn man gegen die XHTML-1.1-DTD validiert und unbedingt konform damit sein will. Dann kann man z.B. das lang-Attribut nicht verwenden, was ein praktischer Nachteil ist. Das ist, wenn ich die hier verlinkten Postings überblicke, auch der einzige praktische Nachteil (man korrigiere mich). Dass XHTML 1.1 qua Standard als XML deklariert und verarbeitet werden sollte, führt praktisch nur zu diesem Nachteil.

      Mathias

      1. @@molily:

        nuqneH

        Auswirkungen hat es, wenn man gegen die XHTML-1.1-DTD validiert und unbedingt konform damit sein will. Dann kann man z.B. das lang-Attribut nicht verwenden,

        was IIRC geändert wurde. Ich hab mir schon einen Wolf gesucht, aber nicht wiedergefunden, wo ich das gelesen hatte. Der W3C-Validator gibt bei @lang grünes Licht.

        Hat das mit der Second Edition (WD vom 2007-02-16) zu tun? (Ein  Folgedokument ist allerdings als „do not use“ markiert. (wegen HTML5?))

        Dass XHTML 1.1 qua Standard als XML deklariert und verarbeitet werden sollte,

        ist in der Second Edition behoben. In §2.1.1: “XHTML 1.1 documents SHOULD be labeled with the Internet Media Type text/html as defined in [RFC2854] or application/xhtml+xml as defined in [RFC3236]. For further information on using media types with XHTML, see the informative note [XHTMLMIME].”

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Dann kann man z.B. das lang-Attribut nicht verwenden,

          was IIRC geändert wurde.

          Ich hatte extra nochmal im aktuellen, ein paar Tage alten XHTML M12n nachgesehen - aber kein Modul gefunden, was lang definiert. Die I18n Attribute Collection definiert nur xml:lang.

          Der W3C-Validator gibt bei @lang grünes Licht.

          Ich halte das für einen Fehler im Validator. Er nutzt eine DTD aus irgendeinem Working Draft, aber nicht die aus dem Standard.

          http://validator.w3.org/#validate_by_input
          Eingeben & validieren:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head><title/></head>
          <body lang="de"/>
          </html>

          -> Valide (false positive)

          Hingegen:

          <!DOCTYPE html SYSTEM "http://www.w3.org/TR/2001/REC-xhtml11-20010531/DTD/xhtml11.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head><title/></head>
          <body lang="de"/>
          </html>

          -> Nicht valide (korrekt m.W.)

          Das heißt, den Public Identifier weglassen, stattdessen die direkte URI der DTD angeben. Der Validator lädt die sich herunter, anstatt die DTD zu verwenden, die er lokal unter dem Public Identifier gespeichert hat. Wenn er sich also die richtige DTD aus dem XHTML-1.1-Standard anschaut, welche die aktuellen DTD-Module von XHTML M12n 1.1 referenziert, dann ist lang nicht erlaubt.

          Der Validator verwendet eine XHTML-1.1-DTD (Link zum Quellcode-Repository), die laut README aus post-WD-xhtml11-20070216 stammt, »retrieved from http://www.w3.org/MarkUp/DTD/ on 2009-10-23«.

          Daraus:
             119<!-- adding the lang attribute into the I18N collection -->
             120
             121<!ENTITY % xhtml-datatypes.module "INCLUDE" >
             122<![%xhtml-datatypes.module;[
             123<!ENTITY % xhtml-datatypes.mod
             124     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
             125            "xhtml-datatypes-1.mod" >
             126%xhtml-datatypes.mod;]]>
             127
             128<!ENTITY % lang.attrib
             129     "xml:lang     %LanguageCode.datatype;  #IMPLIED
             130      lang         %LanguageCode.datatype;  #IMPLIED"
             131>

          Klar, *diese* DTD erlaubt lang, weil sie den Entity lang.attrib neu definiert. Der ist in purem XHTML M12n so definiert:

          <!ENTITY % lang.attrib
               "xml:lang     %LanguageCode.datatype;  #IMPLIED"

          http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-attribs-1.mod

          Das von dir verlinkte, aufgehobene Dokument http://www.w3.org/TR/2009/PER-xhtml11-20090507/xhtml11_dtd.html überschreibt lang.attrib ebenfalls zugunsten von lang (siehe ganz unten).

          Vielleicht plante das W3C mal, lang wieder zuzulassen, geändert hat sich allerdings nur die DTD des Validators, nicht die einer Recommendation.

          Dass XHTML 1.1 qua Standard als XML deklariert und verarbeitet werden sollte,

          ist in der Second Edition behoben.

          Danke für den Hinweis.

          (Wieso verweist man eigentlich aufs Archiv, wenn da offenbar obsolete Infos drinstehen?)

          Mathias

          1. Tach,

            Vielleicht plante das W3C mal, lang wieder zuzulassen, geändert hat sich allerdings nur die DTD des Validators, nicht die einer Recommendation.

            das war an der "XHTML™ 1.1 - Module-based XHTML - Second Edition" drin, die allerdings nur vom nur vom 2009-05-07 bis 2009-07-19 recommanded war. Ich schätze mal man hat den Validator damals auf die second edition um-, aber nicht wieder zurück gestellt.

            Dass XHTML 1.1 qua Standard als XML deklariert und verarbeitet werden sollte,

            ist in der Second Edition behoben.

            Das ist übrigens die "XHTML Media Types - Second Edition", hat nichts direkt mit der obigen Second Edition zu tun und gilt seit Januar 2009.

            (Wieso verweist man eigentlich aufs Archiv, wenn da offenbar obsolete Infos drinstehen?)

            Ich verwies darauf, weil ich bis eben nicht wusste, dass sich da letztes Jahr noch was geändert hatte; ich war der Meinung das W3C hätte entschieden XHTML 1.1 ruhen zu lassen (muß allerdings zugeben, dass ich XHTML 1.1 auch abgeschrieben hatte). Beim nächsten Mal dann...

            mfg
            Woodfighter