hotti: input oder button für submit-Elemente?

Beitrag lesen

Der <button> hat gegenüber dem <input type="submit"> allerdings den klaren Vorteil, dass seine Beschriftung, von dessen Wert abweichen kann.

<button name="action" value="0">reparieren</button>
<button name="action" value="1">deinstallieren</button>

Das verarbeitende Skript, das das Formular entgegen nimmt, muss dann keine Entscheidungen auf Basis (möglicherweise sprachabhängiger) Beschriftungen treffen.

ich hab mich schon immer gewundert, dass das manche machen. warum nicht einfach den *namen* des elements benutzen für die unterscheidung?

Zumal die Parameter-Bindung Einiges vereinfacht, z.B. werden mit

  
if( $cgi->delete('senden') ){  
   @user_input = $cgi->param(); # hier nur noch Benutzereingaben  
}  

gleich drei Dinge mit einmal erledigt:

  1. ein Zustandsübergang wird eingeleitet
  2. der Wert des Parameters 'senden', egal ob das ein Einzelwert oder eine Liste ist, muss nicht weiter geprüft werden
  3. die übriggebliebene Parameterliste (Schlüssel-Werte-Paare) wird bereinigt, es liegen nur noch die Benutzereingaben vor

Literatur: EA, Optimierung

Was die Optimierung betrifft: Eine fehlerhafte Benutzereingabe sollte keinen weiteren Zustand erzeugen (das wäre ein Bruch mit der Parameterbindung).

Schöne Grüße.