Tiberius: HTML: Buttons mit Grafik drauf

Hi

ich habe eine Webanwendung mit Masken und einigen Submit-Buttons da drin. Das funktioniert im Moment auch problemlos. Jetzt sollen aber statt den Text-Buttons Grafiken auf die Buttons.

Lösung 1:
Es bleiben Submit-Buttons und per CSS bekommen die jeweils eine Hintergrundgrafik eingebunden.

<input type="submit" name="~OkCode(NEXT)" style="background-image:url(pfad+grafik.gif);">

Funktioniert aber mit dem IE 6.0 leider nicht :-( ... mit 4.0, 5.0 und 5.5 ging das noch. Beim IE 6 fehlen die Grafiken dann plötzlich.

Lösung 2:
Die ansich bessere Lösung wäre es das Standard HTML-Element <button> zu verwenden:

<button type="submit" name="~OkCode(NEXT)"><img src="grafik.gif"></button>

Der Button der da raus kommt, sieht auch schön aus, aber die Behandlung des resultienden HTTP-Requests stellt mich vor ein Problem.

Bei Lösung 1 bekomme ich sowas wie &~OkCode(NEXT)=& im HTTP-Querystring und zwar genau von dem Button der gedrückt wurde - problemlos!

Bei Lösung 2 bekomme ich *alle* Buttons die auf der Seite vorhanden sind im Querysting.

&~OkCode(BACK)=<img src="grafik1.gif">&~OkCode(NEXT)=<img src="grafik2.gif">&

Damit ist es unbrauchbar, weil serverseitig gar nicht erkennbar ist, welcher von den Buttons ursprünglich geklickt wurde!

Kennt jemand eine Lösung, die auch mit dem IE6 funktioniert und bei der nur der Name des Buttons übertragen wird, der geklickt wurde?

Bin für jeden Tipp dankbar.

Gruß
Tiberius

  1. Hallo,

    Warum verwendest Du nicht einfach einen grafischen Button, wie es ihn
    seit HTML 3.2 gibt?
    <input type="image" src="absende.gif" name="DeinZeugs">
    http://selfhtml.teamone.de/html/formulare/formularbuttons.htm#grafische

    Gruesse,

    Thomas

  2. hi,

    <input type="submit" name="~OkCode(NEXT)" style="background-image:url(pfad+grafik.gif);">

    ich hab's dir ja auf die selbe frage im heise-forum hin schon gesagt, aber auch hiernochmal, damit so ein fehler nicht unwidersprochen ins archiv wandert:

    "~OkCode(NEXT)" ist aus _mehreren_ gründen _kein_ gültiger wert für name.

    gruss,
    wahsaga

    1. hi

      verstanden :)

      und wenn das größte deutsche softwarehaus es anders definiert hätte und ich es anders benennen könnte, dann würde ich es auch anders benennen :)

      ciao
      tiberius

      hi,

      <input type="submit" name="~OkCode(NEXT)" style="background-image:url(pfad+grafik.gif);">

      ich hab's dir ja auf die selbe frage im heise-forum hin schon gesagt, aber auch hiernochmal, damit so ein fehler nicht unwidersprochen ins archiv wandert:

      "~OkCode(NEXT)" ist aus _mehreren_ gründen _kein_ gültiger wert für name.

      gruss,
      wahsaga

    2. Hi,

      <input type="submit" name="~OkCode(NEXT)" style="background-image:url(pfad+grafik.gif);">
      ich hab's dir ja auf die selbe frage im heise-forum hin schon gesagt, aber auch hiernochmal, damit so ein fehler nicht unwidersprochen ins archiv wandert:
      "~OkCode(NEXT)" ist aus _mehreren_ gründen _kein_ gültiger wert für name.

      Please explain.

      Das name-Attribut des input-Elements hat als Datentyp CDATA.

      name = cdata [CI]
          This attribute assigns the control name.
      (siehe http://www.w3.org/TR/html401/interact/forms.html#adef-name-INPUT)

      Und CDATA ist hier (<>) definiert als:

      CDATA is a sequence of characters from the document character set and may include character entities. User agents should interpret attribute values as follows:

      * Replace character entities with characters,
          * Ignore line feeds,
          * Replace each carriage return or tab with a single space.

      User agents may ignore leading and trailing white space in CDATA attribute values (e.g., "   myval   " may be interpreted as "myval"). Authors should not declare attribute values with leading or trailing white space.

      For some HTML 4 attributes with CDATA attribute values, the specification imposes further constraints on the set of legal values for the attribute that may not be expressed by the DTD.

      Eine solche im letzten Absatz des Zitates erwähnte Einschränkung kann ich für das name-Attribut des input-Elements nicht finden.

      Welche Gründe sprechen also bitte dafür, daß "~OkCode(NEXT)" kein gültiger name-Attributwert im input-Element ist?

      Und um gleich vorzubeugen: das name-Attribut des input-Elements ist (trotz des Namens name) kein NAME-token (auch kein ID-token).
      (die hier: http://www.w3.org/TR/html401/types.html#type-id definiert werden).

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/