Kalle_B: Submit-Button feuert nicht

Hallöle,

in einer <form> habe ich einen einzigen Submit- Button:
<input type='submit' name='p422_submit_buc' value='buchen' class=neu>

Wenn ich in der Form nun Radio- Buttons anklicke und die Eingabetaste drücke, wird p422_submit_buc vom IE, aber nicht vom Firefox mitgeliefert.

Wie bekomme ich den FF dazu, den einzigen Submit- Button als gedrückt zu betrachten?

Lieben Gruß, Kalle

  1. Moin!

    Wenn ich in der Form nun Radio- Buttons anklicke und die Eingabetaste drücke, wird p422_submit_buc vom IE, aber nicht vom Firefox mitgeliefert.

    Wie bekomme ich den FF dazu, den einzigen Submit- Button als gedrückt zu betrachten?

    Wozu brauchst du den denn? Deine Programmlogik weiß doch, dass das Formular nur einen Submitbutton hat. Also kann doch nur dieser eine Button gedrückt worden sein, wenn das Formular zurückkommt.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin!

      Wozu brauchst du den denn? Deine Programmlogik weiß doch, dass das Formular nur einen Submitbutton hat. Also kann doch nur dieser eine Button gedrückt worden sein, wenn das Formular zurückkommt.

      Ja, du hast recht. Ich prüfe allerdings grundsätzlich, ob **alle** Bedingungen erfüllt sind. Vielleicht manchmal redundant, hat es sich doch gut bewährt und manche Programmier- Nachlässigkeit kommt dadurch an den Tag.

      Irgendwelche Daten kann schliesslich jeder schicken ...

      Kalle

  2. echo $begrüßung;

    in einer <form> habe ich einen einzigen Submit- Button:
    <input type='submit' name='p422_submit_buc' value='buchen' class=neu>
    Wenn ich in der Form nun Radio- Buttons anklicke und die Eingabetaste drücke, wird p422_submit_buc vom IE, aber nicht vom Firefox mitgeliefert.

    Bist du sicher, dass das wirklich so ist? Die HTML-Spezifikation sagt, dass nur name-value-Pärchen von erfolgreichen Elementen übertragen werden sollen. Normalerweise interpretiert der IE einen nicht aktivierten Submit-Button nicht als erfolgreich.

    Wie bekomme ich den FF dazu, den einzigen Submit- Button als gedrückt zu betrachten?

    Ich würde ja sagen, du meinst den IE, aber wie auch immer: Füge für den Default-Wert ein Hidden-Feld ein, das dann durch Browser, die sich einfach irgendein name-value-Pärchen eines nicht gedrückten Submit-Buttons schnappen und für den Fall, dass doch der Submit-Button aktiviert wurde, überschrieben wird.
    Dieser Workaround hängt von der auswertenden Logik ab. PHP überschreibt bei gleichen name-Werten einen vorher übermittelten.

    echo "$verabschiedung $name";

    1. Hi,

      Bist du sicher, dass das wirklich so ist? Die HTML-Spezifikation sagt, dass nur name-value-Pärchen von erfolgreichen Elementen übertragen werden sollen.

      Zitat: "If a form contains more than one submit button, only the activated submit button is successful."

      Wenn es also mehr als einen submit-Button gibt, darf nur der tatsächlich benutzte submit-Button übertragen werden.
      Was jedoch geschehen soll, wenn es nur einen einzigen Submit-Button gibt, ist nicht definiert. Der einzige submit-Button erfüllt zwar ggf. die Grundvoraussetzung ("A successful control must be defined within a FORM element and must have a control name.") und sollte auch, um das Formular absenden zu können, enabled sein ("Controls that are disabled cannot be successful."). Auch die Aussage "If a control doesn't have a current value when the form is submitted, user agents are not required to treat it as a successful control." sagt nicht, was geschehen soll, wenn der einzige submit-Button ein name-value-Pärchen hat.

      Ich persönlich finde die Vorgehensweise des Firefox, den einzigen submit-Button nur dann zu übermitteln, wenn er tatsächlich benutzt wurde, logisch. Denn damit verhält er sich unabhängig von der Anzahl der submit-Buttons immer gleich - es wird nur derjenige submit-Button übertragen, der tatsächlich benutzt wurde. Und bei Versand per Return-Taste wurde eben kein submit-Button aktiviert.

      Normalerweise interpretiert der IE einen nicht aktivierten Submit-Button nicht als erfolgreich.

      Das hängt von der Art des submit-Buttons ab, der IE (bis mind. 6.0, IE 7.0 hab ich dahingehend nicht überprüft) hat massive Schwierigkeiten mit submit-Buttons:
      Sind es button-Elemente, überträgt der IE alle name-CONTENT-Pärchen anstelle des name-value-Pärchens des benutzten Buttons.
      Ist es ein input-Element vom type image, überträgt der IE nur die Koordinaten, nicht jedoch das name-value-Pärchen.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. echo $begrüßung;

        Ich persönlich finde die Vorgehensweise des Firefox, den einzigen submit-Button nur dann zu übermitteln, wenn er tatsächlich benutzt wurde, logisch.

        Auch du schiebst diese Eigenschaft dem Firefox zu. Doch dieses Verhalten kann ich - eben noch mal probiert - bei ihm nicht beobachten, sondern nur beim IE. Der Firefox nimmt sich einfach das name-value-Pärchen vom ersten Submit-Button.

        Und ja, auch ich finde das Verhalten so richtig. Nichts aktiviert -> nichts gesendet.

        [...] der IE (bis mind. 6.0, IE 7.0 hab ich dahingehend nicht überprüft) hat massive Schwierigkeiten mit submit-Buttons:
        [ <button> und <input type="image"> ]

        Ja, um die ging es aber in diesem Faden nicht, weswegen ich diese und ihr Fehlverhalten in meinen Ausführungen unbetrachtet gelassen habe.

        echo "$verabschiedung $name";

  3. Moin,

    in einer <form> habe ich einen einzigen Submit- Button:
    <input type='submit' name='p422_submit_buc' value='buchen' class=neu>

    Wenn ich in der Form nun Radio- Buttons anklicke und die Eingabetaste drücke, wird p422_submit_buc vom IE, aber nicht vom Firefox mitgeliefert.

    So? Was sagt denn die Liste der Parameter nach einem Submit? Ist da der Parameter 'p422_submit_buc' mit dabei? Und gibts vielleicht auch einen Value dazu?

    --roro

    1. Moin,

      So? Was sagt denn die Liste der Parameter nach einem Submit? Ist da der Parameter 'p422_submit_buc' mit dabei? Und gibts vielleicht auch einen Value dazu?

      Eben nicht, deshalb wurde ja nicht gebucht, weil ich auch die Rückgabe des Submit- Buttons zur Bedingung gemacht habe. Daten vom IE_5 kommend wurden gebucht, Daten vom FF_2 kommend nicht.

      Habe diese Bedingung nun rausgenommen. Es ist ein größeres Formular und das Rollen bis ans Ende, um den Button anzuklicken, ist lästig.

      Kalle

      1. Moin,

        So? Was sagt denn die Liste der Parameter nach einem Submit? Ist da der Parameter 'p422_submit_buc' mit dabei? Und gibts vielleicht auch einen Value dazu?

        Eben nicht, [..]

        Jow, dann wurde er auch nicht geklickt. Vermutlich möchtest Du, dass ein Submit erfolgt, wenn irgendwas anderes gemacht wurde, ein Drücken der Entertaste z.B.

        Mein Tipp: Mach dieses irgenwas anderes und schau Dir an, was an Parametern ankommt, worauf Deine Kontrollstruktur dann aufsetzt.

        Auf meiner Linkbase habe ich das so gemacht, dass ein Submit sowohl mit [Enter] als auch mit Klick auf den Submit-Button erfolgt, indem ich als Parameter den input type='text' name='query_string' ODER den input type='submit' name='find' abfrage in einer entsprechenden Kontrollstruktur.

        elsif($in{'find'} or $in{'query_string'}){ .. }

        --roro