Georg: Variablenübergabe bei grafischen submit-Buttons

Hallo liebe SelfHTMLer,

In einem PHP-Script benutze ich folgende HTML-Syntax, um ein Formular abzusenden:

<form ...>
    <input type="image" border="0" style="border:0" src="aktualisieren.png" name="action" value="aktualisieren" title="Inhalt Aktualisieren">
   <input type="image" option2...>
   <input type="image" option2...>
</form>

Das Problem: Die Variable $action wird in diesem Fall gar nicht übergeben, und das Kuriose ist, dass dies offenbar an der HTML-Syntax liegen muss, zumal mit einem

<input type="submit" name="action" value="wert">

$action korrekt mit $action="wert" übergeben wird.

Ich arbeite mit dem IE 5,6 und NN 4.x und bin darauf angewiesen, dass das Problem gleichermaßen auf allen Browsern bewältigt wird. Daher kommt es nicht in Frage, auf <button> umzusteigen. Die Bilder sollen ebenfalls beibehalten werden.

Ich denke, ein Hinweis auf diesen Umstand sollte in der nächsten SelfHTML-Version angebracht werden :-)

Denn momentan fiele mir nur ein, für jeden einzelnen <input>-Button ein eigenes <form>-Feld zu erstellen, das dann eine GET-Variable à la <form method=POST action="meinscript.php?action=wert"> übergibt.

Kennt jemand eine bessere Lösung, einen Umweg?
Oder habe ich etwas falsch gemacht?

  1. Moin,

    Denn momentan fiele mir nur ein, für jeden einzelnen <input>-Button ein eigenes <form>-Feld zu erstellen, das dann eine GET-Variable à la <form method=POST action="meinscript.php?action=wert"> übergibt.

    falls Du Javascript verwenden kannst, geht auch folgendes:

    a) Schreibe in den <head> eine Funktion ähnlich der folgenden:

    function set_action(action) {
      document.ff.action.value=action;
      document.ff.submit();
    }

    b) Gestalte Dein Formular z.B. so:

    <form name="ff" method="post" action="sputter.r" enctype="multipart/form-data">
    <input type="hidden" name="action"    value="0">
    <!-- und weitere hidden und non-hidden fields ... -->

    </form>

    c) Nun kannst Du an beliebiger Stelle im Dokument Links
       definieren, mit denen das Formular 'ff' mit einem bestimmten
       action-Wert abgeschickt wird:

    <ol>
       <li><a href="javascript:set_action('quit');">Logout</a>
       <li><a href="javascript:set_action('buy');">Kaufen</a>
       </ol>
       ... usw.

    Viele Grüße

    Andreas

  2. Hallo Georg

    <input type="image" border="0" style="border:0" src="aktualisieren.png" name="action" value="aktualisieren" title="Inhalt Aktualisieren">

    Das Problem: Die Variable $action wird in diesem Fall gar nicht übergeben, und das Kuriose ist, dass dies offenbar an der HTML-Syntax liegen muss, zumal mit einem

    <input type="submit" name="action" value="wert">

    Kennt jemand eine bessere Lösung, einen Umweg?

    Frag mal die Variable mit $action_x oder $action_y ab. Grafische Submitbuttons übergeben jeweils die Klickpunkte.
    Gut zu sehen, wenn du das Formular einfach mal per get abschickst.

    Viele Grüße

    Antje