de.comp.lang.php.* FAQ

11.14. Wie verarbeite ich <input type="image">?

Keywords: Formular | Submit | Image | Koordinaten

Antwort von Kristian Köhntopp

In Formularen kann man statt eines SUBMIT auch ein IMAGE als Absendeknopf installieren. Dies sieht dann so aus:

<input type="image" src="meinbild.png" name="sub" />

Wenn der User das Bild anklickt, werden zwei Variablen mit den Namen sub.x und sub.y erzeugt, die die Koordinaten des Klicks relativ zur linken, oberen Ecke des Bildes beschreiben. Da Variablennamen in PHP keine Punkte enthalten dürfen, wandelt PHP die Punkte in Unterstriche um. Im Beispiel bekommt man die Variablen mit den Namen $_REQUEST['sub_x'] und $_REQUEST['sub_y'] übergeben (bzw. vor PHP 4.1.0 $HTTP_GET_VARS['sub_x'], etc. oder $HTTP_POST_VARS['sub_x']).

Antwort von Johannes Frömter

Alternativ kann man an den Variablennamen eines <INPUT TYPE="image"> eckige Klammern [] anhängen; man erhält in PHP dann ein Array mit dem Namen des Buttons, das die Koordinaten des Klickpunktes enthält. Mehrere solcher Image-Buttons kann man als button[a][], button[b][] usw. benennen und die Werte aus den Arrays $_REQUEST['button']['a'], $_REQUEST['button']['b'] usw. auslesen. Ob ein bestimmter Button gedrückt wurde, überprüft man mit isset() : if (isset($_REQUEST['button']['b'])) (bzw. vor PHP 4.1.0 if (isset($HTTP_GET_VARS['button']['b'])) oder if (isset($HTTP_POST_VARS['button']['b']))).

Valid HTML 4.01! Valid CSS!

11.14. Wie verarbeite ich <input type="image">?
http://www.php-faq.de/q/q-formular-image.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team