Eigener Submit-Button

Status
Nicht offen für weitere Antworten.

Beppo98

Mitglied
Hallo liebe User,

habe mich vor ein paar Tagen auf dieser Seite angemeldet, da ich zurzeit an einem kleinen Homepage-Projekt arbeite. Nun ist mir bei der Arbeit an der Website ein etwas komisches Problem untergekommen, wo ich euch um Hilfe bitte.

Also folgendes: Ich möchte ein Submit-Feld mit einer eigenen Grafik belegen. Nun gäbe es die Möglichkeit via Java-Script, jedoch möchte ich diese Möglichkeit außer Betracht lassen, da die Seite auch mit deaktiviertem Java-Script einwandfrei funktionieren soll.

Folgendes habe ich bereits probiert, funktioniert auch in Firefox einwandfrei, jedoch übergibt der IE den Parameter Login=Submit nicht und deshalb werden die Daten dort nicht abgesendet und folglicherweiße funktioniert es dort auch nicht.

Mit diesem Code wird der Button schön angezeigt.
PHP:
<input type="image" name='Login' value='Submit' src='images/buttons/pic_login.gif'>

PHP:
<?php if( $_GET['Login'] == 'Submit' ) include "login.php"; ?>

Also dieser Code funktioniert in Firefox, aber im IE nicht. Jetzt habe ich eine etwas komische Lösung gefunden, die mir aber nicht unbedingt gefällt. Den der Image-Button übergibt außer den von mir angeforderten Parameter noch login.x= und login.y=.

Diese beiden Variablen sind wohl die Koordinaten, wo auf den Button geklickt wird, wie ich festgestellt habe ;).

Jetzt habe ich das ganze mit folgendem Code zum funktionieren gebracht.

PHP:
<?php if( $_GET[$Login.x] >= 0 ) include "unterseiten/login.php"; ?>

Nun frag ich mich, ob das ganze auch schöner geht und vielleicht nicht ganz so umständlich? Diese von mir angewandte Methode finde ich nämlich irgendwie nicht gut.

Evtl. ginge es viel leichter, einen Submit-Button mit einer Grafik zu erstellen. Hoffe ich habe mein Anliegen ausführlich dargelegt. Danke schonmal im Vorraus für eure Hilfe :)

Grüsse,
Beppo
 
Hatte mich wohl ein bisschen zu früh gefreut :(

Beachten Sie:

Der Internet Explorer (getestet bis Version 6.0) verhält sich bei dieser Art Button leider falsch. Er sendet die Buttonbeschriftung, nicht den Inhalt des value-Attributes. Existieren mehrere Absende-Buttons, werden die Beschriftungen aller Buttons gesendet, nicht nur die des geklickten. Deshalb muss man dem IE leider attestieren, dass er dieses Feature derzeit noch nicht korrekt unterstützt.

Leider ist jetzt genau dieses Problem aufgetreten. Beim Klick auf den Button generieren die Browser folgendes:

Firefox:
login.php?Benutzername=Hallo&Passwort=Forum&login=submit

IE: login.php?Benutzername=Hallo&Passwort=Forum&login=%3CIMG+src%3D%22images%2Fbuttons%2Fpic_login.gif%22%3E


Hat hierzu evtl. auch jemand noch eine Lösung? Wäre um jede Hilfe dankbar.
 
Hi,

versuch doch mal, mit Hilfe von CSS die Grafik als Hintergrundbild für das input-Element (type=submit) einzusetzen.
 
Hi, habs mal kurz ausprobiert. Aber leider macht mir der Value-Wert Probleme. Wenn dort nämlich ein Wert gesetzt ist, dann trängelt er sich vor den Hintergrund. Und wenn ich keinen Value setze, dann kann ich die Variable nicht überprüfen :mad:

Mein Versuch war folgender:

PHP:
<input 
style="border:0px solid transparent; cursor: pointer; background-image:url(images/buttons/pic_login.gif); height: 22px; width: 55px;" 
type='submit' name='login' value=''>
</input>

Leider funktioniert color: transparent auch nicht :(
 
Zuletzt bearbeitet:
Da scheint der Internet Explorer von der Spezifikation abzuweichen. Denn nur wenn das value-Attribut fehlt, ist dieses Verhalten erlaubt.
Ein Login-Formular solltest du übrigens unbedingt per POST-Methode übermitteln. Des weiteren kann der übermittelte Wert der Absenden-Schaltfläche egal sein, solange dieser einen eindeutigen Namen hat. Ein einfache Abfrage, ob ein Arrayelement mit diesem Namen existiert, reicht dann aus:
PHP:
if( isset($_POST['Login']) ) include "login.php";
 
Da scheint der Internet Explorer von der Spezifikation abzuweichen. Denn nur wenn das value-Attribut fehlt, ist dieses Verhalten erlaubt.
Ein Login-Formular solltest du übrigens per POST-Methode übermitteln. Des weiteren kann der übermittelte Wert der Absenden-Schaltfläche egal sein, solange dieser einen eindeutigen Namen hat. Ein einfache Abfrage, ob ein Arrayelement mit diesem Namen existiert, reicht dann aus:
PHP:
if( isset($_POST['Login']) ) include "login.php";

Die GET-Methode ist momentan nur zu testzwecken. Wäre ja unsinnig, dass ganze schon jetzt auf POST umzustellen, wenn noch nicht alles funktioniert ;).

Werde die von dir vorgeschlagene Lösung morgen mal ausprobieren. Danke nochmals für die Antwort.

Schönen Abend noch,
Beppo
 
Hab das Problem auch gerade gehabt ,
und habe es so gelöst:

Code:
<input type="submit"  border="0" name="aendern" value="&nbsp; Speichern" style="border:0; background-image:url(symbole/button_ok.gif); background-color:#FFFFFF; background-repeat:no-repeat; background-position:left; line-height:18px; height:22px; font-size:10px;">
<input type="submit"  border="0" name="loesche" value="&nbsp; &nbsp;Löschen" style="border:0; background-image:url(symbole/button_delete.gif); background-color:#FFFFFF; background-repeat:no-repeat; background-position:left; line-height:18px; height:22px; font-size:10px;">

den style kannst Du ja auch in ne extra css schreiben
 
Status
Nicht offen für weitere Antworten.
Zurück