Mit einem HTML-Formular wie:
<input type="submit" name="btnSubmit" value="Save Changes" />
<input type="submit" name="btnDelete" value="Delete" />
Der zu verwendende PHP-Code würde folgendermaßen aussehen:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['btnDelete'])) {
} else {
}
}
Sie sollten immer davon ausgehen, dass die erste Schaltfläche zum Senden im HTML-Quellcode des Formulars angezeigt wird . In der Praxis senden die verschiedenen Browser zuverlässig den Namen / Wert einer Senden-Schaltfläche mit den Post-Daten, wenn:
- Der Benutzer klickt buchstäblich mit der Maus oder dem Zeigegerät auf die Senden-Schaltfläche
- Oder es liegt der Fokus auf der Schaltfläche "Senden" (sie sind mit Registerkarten versehen), und dann wird die EnterTaste gedrückt.
Es gibt andere Möglichkeiten, ein Formular zu senden , und einige Browser / Versionen entscheiden sich in einigen dieser Situationen , den Namen / Wert von Senden-Schaltflächen nicht zu senden . Beispielsweise senden viele Benutzer Formulare durch Drücken der TasteEnter Taste, wenn sich der Cursor / Fokus auf einem Textfeld befindet. Formulare können auch über JavaScript sowie einige weitere undurchsichtige Methoden eingereicht werden.
Es ist wichtig, auf dieses Detail zu achten, da Sie sonst Ihre Benutzer beim Senden eines Formulars wirklich frustrieren können, aber "nichts passiert" und ihre Daten verloren gehen, weil Ihr Code eine Formularübermittlung nicht erkannt hat, weil Sie die Tatsache nicht vorausgesehen haben dass der Name / Wert einer Senden-Schaltfläche möglicherweise nicht mit den Post-Daten gesendet wird.
Der obige Rat sollte auch für Formulare mit einer einzigen Schaltfläche zum Senden verwendet werden, da Sie immer von einer Standardschaltfläche zum Senden ausgehen sollten .
Mir ist bewusst, dass das Internet mit unzähligen Formular-Handler-Tutorials gefüllt ist, und fast alle von ihnen tun nichts weiter, als den Namen und den Wert einer Senden-Schaltfläche zu überprüfen. Aber sie sind einfach falsch!