Grafische Submit-Buttons im MSIE

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Grafische Submit-Buttons im MSIE

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag 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" />
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag von D@ve »

thx - hat geklappt 8)
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag 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 )
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Ahja, so langsam wirds hell! Danke... :wink: easy
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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
Antworten

Zurück zu „Coding & Technik“