Markus: Formular mit 4 Submit Buttons

Hallo,

ich habe ein Formular mit 4 Submit Buttons. Ich unterscheide je nach dem welcher gedrück wurde was als nächtes getan wird, bzw wenn noch keiner gedrück wurde gebe ich das Formular mit den 4 Buttons aus. Ich wolte nur mal fragen ob es vielleicht einen einfacheren Weg gibt als in einer IF-Anweisung alle 4 Knöpfe auf vorhandensein zu Prüfen per Oder Verknüpfung. Weiß jemand einen Trick wie man Abfragen kann ob ein Knopf gedrück wurde (egal welcher)?

Gruß

Markus

  1. hi,

    Ich wolte nur mal fragen ob es vielleicht einen einfacheren Weg gibt als in einer IF-Anweisung alle 4 Knöpfe auf vorhandensein zu Prüfen per Oder Verknüpfung. Weiß jemand einen Trick wie man Abfragen kann ob ein Knopf gedrück wurde (egal welcher)?

    Du könntest allen Buttons den gleichen Namen geben.

    Zur Unterscheidung, welcher im Speziellen gedrückt wurde, schaust du dir den übergebenen Value an.
    Wenn du nur überprüfen willst, ob überhaupt einer gedrückt wurde, brauchst du nur prüfen, ob irgendein Wert in $_POST['buttonname'] übergeben wurde (isset() oder empty(), wobei in so einem Falle eher ersteres).

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      Danke, das hat mir weitergeholfen

      Gruß

      Markus

    2. echo $begrüßung;

      Du könntest allen Buttons den gleichen Namen geben.
      Zur Unterscheidung, welcher im Speziellen gedrückt wurde, schaust du dir den übergebenen Value an.
      Wenn du nur überprüfen willst, ob überhaupt einer gedrückt wurde, brauchst du nur prüfen, ob irgendein Wert in $_POST['buttonname'] übergeben wurde

      Die Sache hat zwei Haken, die ich der Vollständigkeit halber aufführen möchte.

      Zum einen interpretieren die Browser den Abschnitt Form Submission (speziell Successful controls)der HTML-Spezifikation unterschiedlich. Während IE davon ausgeht, dass kein Button successful war, wenn man das Formular mit Enter absendet, also auch kein name-value-Paar irgendeines Submit-Buttons mitsendet, nimmt der Firefox irgendeinen der Buttons (vermutlich den ersten in Quelltext-Reihenfolge) und denkt ihn sich "successful".

      Der andere Haken ist die fehlerhafte Implementation des IE, wenn du <button type=submit> statt der herkömmlichen <input type=submit> verwendest. Der IE nicht nicht name und value sondern name und innerHTML. Außerdem sendet er dies von allen dieser Buttons. Wenn man gleiche name-Werte verwendet, überschreibt PHP die vorhergehende Werte. Es sieht dann immer so aus, als ob der letzte <button> aktiviert wurde. Umgehen kann man beide Fehler, indem man name und value erst im onclick-Ereignis setzt.

      echo "$verabschiedung $name";

      1. Hi,

        Die Sache hat zwei Haken, die ich der Vollständigkeit halber aufführen möchte.
        Zum einen interpretieren die Browser den Abschnitt Form Submission (speziell Successful controls)der HTML-Spezifikation unterschiedlich. Während IE davon ausgeht, dass kein Button successful war, wenn man das Formular mit Enter absendet, also auch kein name-value-Paar irgendeines Submit-Buttons mitsendet, nimmt der Firefox irgendeinen der Buttons (vermutlich den ersten in Quelltext-Reihenfolge) und denkt ihn sich "successful".

        Bei Firefox ist es der erste.
        Bei Opera ist es noch komplizierter, da hängt es davon ab, welches form-control gerade den Fokus hat: er nimmt denjenigen Submit-Button, der als nächster im Dokument nach dem fokussierten Element erscheint.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.