dedlfix: Mehrere Forms -> Wie auswerten, welches angeklickt wurde?

Beitrag lesen

Hi!

Bei gleichem Ziel und bei gleichem Set an Elementen gar nicht. Bring einen Unterschied rein, und sei es ein Hidden-Element.
[...] Unterschieden habe ich immer nur anhand von <input type="submit" name="FORM_1"> [...] Kann man dann nicht abfragen (Pseudo Code):
Wenn auf FORM_1 geklickt wurde, dann ...

Jein, jedenfalls nicht so direkt, denn beim Server kommen keine Clicks an, sondern das was der Browser als Request versendet: Name-Value-Pärchen.

Wenn du einen festgelegten Namen hast, kannst du recht einfach darauf zugreifen, um an den zugehörigen Wert zu gelangen. Wie das geht, dürfte dir ja bekannt sein, weil das zu den Grundlagen der Formularverarbeitung gehört. Wenn der Name nicht festgelegt ist sondern einer von mehreren Werten sein kann, musst du fragen, ob einer dieser Namen mitgesendet wurde, und das für jedem einzeln (oder du denkst dir einen Algorithmus aus, der das cleverer anstellt.) Bei PHP kommt ja ein Array mit den Name-Value-Pärchen an: das bekannte $_GET/$_POST/$_REQUEST. Wie das jeweils aussieht, zeigt die eine Kontrollausgabe mit print_r() oder var_dump(). Die "Schwierigkeit" beim Name liegt darin, aus den Keys dieses Arrays herauszulesen, ob ein bestimmter (einer von mehreren in deinem Fall) vorhanden ist oder nicht. Hinzu kommt noch die schon erwähnte Unwägbarkeit des Überhaupt-Vorhandenseins dieses Name-Value-Pärchens. Und der Ersatz dafür ist ein Hidden-Element. Wenn du also sowieso ein Hidden-Element einfügen musst, kannst du es dir ja auch gleich mit der Auswertung einfacher machen, als Name einen feststehenden Wert verwenden und in Value beispielsweise den jeweiligen Formularnamen eintragen.

Lo!