Seite 1 von 1

Grafische Submit-Buttons im MSIE

Verfasst: 15.07.2005 00:19
von D@ve
Kann es sein, dass der IE bei grafischen Buttons die Werte der Buttons nicht übernimmt?

Code: Alles auswählen

<form action="link-rubrik-{URL_NAME}.html" method="post">
.
.
.
<input type="image" src="./images/misc/arrow_up.gif" name="order" value="name-up"/>
.
.
.
</form>
<!-- ENDIF -->
Wenn ich im empfangenen php-Script, den Inhalt ausgebe:

Code: Alles auswählen

 echo "order: " . $_POST['order'] . "<br>";
...passiert im IE rein garnix. Firefox & Co geben den korrekten Wert (zB. name-up) aus. Hat jemand 'ne Idee woran das liegen könnte?

Gruß, Dave

Verfasst: 15.07.2005 04:35
von easygo
Versuchs mal so

Code: Alles auswählen

<input type="image" name="order" src="./images/misc/arrow_up.gif" value="order" alt="name-up" />

Verfasst: 15.07.2005 10:30
von Blutgerinsel
easygo hat geschrieben:Versuchs mal so

Code: Alles auswählen

<input type="image" name="order" src="./images/misc/arrow_up.gif" value="order" alt="name-up" />
nicht dein ernst oder?

Das Problem ist folgendes. Buttons des Typ Images werden anhand ihrer X und Y Koordinate gespeichert die relativ zur linken, oberen Ecke ausgeht.

In deinem Fall existieren zwei Variablen $_POST['order_x'] und $_POST['order_y'] die natürlich nur vorhanden sind wenn der Button gedrückt wurde.

Da ich mit Koordinaten nicht arbeiten will und werde bediene ich mir folgendenden Tricks der auch im www gänzlich so scheint es angewendet wird und zwar:

Code: Alles auswählen

<input type="image" name="button[order]" src="./images/misc/arrow_up.gif" value="order" alt="name-up" />
Man beachte die Änderung im name Attribut......

Mit PHP frage ich dann einfach ungeniert:

Code: Alles auswählen

if ( isset($_POST['button']['order']) )
Durch dieses Schema erschlage ich automatisch mehrere Submit und Image Buttons.

BTW: value Attribut bei einem benutzerdefinierten Image Button ist etwas unsinnig. Auch wenn neue Browser Versionen mitdenken können heisst das nicht das Alte oder alle Browser damit klarkommen.
Mit dieser Methode kommt jeglicher Browser klar

Verfasst: 15.07.2005 11:49
von D@ve
thx - hat geklappt 8)

Verfasst: 15.07.2005 13:07
von easygo
Hm, mal genauer bitte...

Was hat jetzt wie geklappt, und wo genau lag der Fehler?

Nix gegen geballtes Wissen :D @ Blutgerinsel

... aber welcher Nicht-Insider (me2) soll das so nachvollziehen können?
Blutgerinsel hat geschrieben:Durch dieses Schema erschlage ich automatisch mehrere Submit und Image Buttons.

BTW: value Attribut bei einem benutzerdefinierten Image Button ist etwas unsinnig. Auch wenn neue Browser Versionen mitdenken können heisst das nicht das Alte oder alle Browser damit klarkommen.
Mit dieser Methode kommt jeglicher Browser klar
Was meinst du mit erschlagen, und wieso lässt du
value="order" drin, wenns so unsinnig ist?

easy ( net Ernst, der hat Urlaub )

Verfasst: 15.07.2005 14:22
von D@ve
Was hat jetzt wie geklappt, und wo genau lag der Fehler?
Der Fehler lag schlicht und ergreifend da, dass der Internet-Explorer den "value" nicht mit verschickt hat. Bei der Lösung von Blutgerinsel braucht man value garnicht mal, ich denke mal, dass keine Absicht war, dass er ihn dringelassen hat...

Zum besseren Verständnis hier nochmal den gesamten Quelltext (dann siehst Du auch, was ich damit bezweckt habe (eine übergabe per GET war nicht möglich weil mir eine rewrite-rule im Weg war ;-) ):

Template:

Code: Alles auswählen

<!-- IF LINK_COUNT -->
<form action="link-rubrik-{URL_NAME}.html" method="post">
<table cellpadding="0" cellspacing="0">
    <tr><th class="left"></th>
        <th class="gen">{L_NAME}&nbsp;<input type="image" src="./images/misc/arrow_up.gif" name="order[name-up]"/><input type="image" name="order[name-down]" src="./images/misc/arrow_down.gif"/></th>
        <th class="gen">&nbsp;&nbsp;&nbsp;{L_ZIP}&nbsp;<input type="image" src="./images/misc/arrow_up.gif" name="order[plz-up]" /><input type="image"  name="order[plz-down]" src="./images/misc/arrow_down.gif"/></th>
        <th class="gen">&nbsp;&nbsp;&nbsp;{L_CITY}&nbsp;<input type="image" src="./images/misc/arrow_up.gif" name="order[city-up]" /><input type="image" name="order[city]" src="./images/misc/arrow_down.gif"/></th>
        <th class="right"></th></tr>
      <!-- BEGIN link_row -->
           <tr><td>&nbsp;</td><td class="gen"><a href="musik-links-{link_row.LINK_ID}.html"><u>{link_row.NAME}</u></a></td><td class="gen">&nbsp;&nbsp;{link_row.PLZ}&nbsp;</td><td class="gen">&nbsp;{link_row.CITY}</td></tr>
      <!-- END link_row -->
</table>
</form>
<!-- ENDIF -->
PHP:

Code: Alles auswählen

    switch (key($_POST['order']))
    {
        case "name-down" : $order = "name";
                           $order_dir = "DESC";
                           break;
        case "plz-up" :    $order = "plz";
                           $order_dir = "ASC";
                           break;                           
        case "plz-down" :  $order = "plz";
                           $order_dir = "DESC";
                           break;
        case "city-up" :   $order = "ort";
                           $order_dir = "ASC";
                           break;                           
        case "city-down" : $order = "ort";
                           $order_dir = "DESC";
                           break;                           
        default:           $order = "name";                    
                           $order_dir = "ASC";
    }
    $sql = "SELECT * FROM " . LINKS_TABLE . " lt, " . LINKS_REL_CATS_TABLE . " lc
            WHERE lt.id = lc.link_id 
            AND lc.cat_id = " . $cat_id . "
            AND lt.aktiv = 1
             ORDER BY " . $order . " " . $order_dir;
usw...
Gruß, Dave

Verfasst: 15.07.2005 14:43
von easygo
Ahja, so langsam wirds hell! Danke... :wink: easy

Verfasst: 15.07.2005 16:33
von Blutgerinsel
D@ve hat geschrieben:Bei der Lösung von Blutgerinsel braucht man value garnicht mal, ich denke mal, dass keine Absicht war, dass er ihn dringelassen hat...
genau :wink:

bei type="submit" macht der value wegen der Beschriftung Sinn....
bei type="image" macht es keinen Sinn

Im Grunde reicht es zu wissen ob ein Button übergeben wurde oder nicht ansonsten bleibt nur noch die X und Y Koordinate abzufragen