dedlfix: Formular mit 4 Submit Buttons

Beitrag lesen

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";