Patrick: Text über Select mit Grafiken schreiben - funzt aber...

Hallo!

Ich möchte den Wert von einem Select-Feld auslesen und dann grafisch darstellen. Das Beispiel unten funzt fast, ausser dass sich nur einmal ein Buchstabe ändert (statt allen) und dann geht nix mehr. Hat jemand eine Idee an was es liegen könnte?

<body bgcolor=#FFFFFF text=#000000>
<CENTER>
<IMG NAME="leer1" SRC="leer1.gif" border="0"><IMG NAME="leer2" SRC="leer2.gif" border="0"><IMG NAME="leer3" SRC="leer3.gif" border="0">
<form name="TextForm">
<select name="TextSelect" onChange="TextLetters(string)">
  <option selected value="0">AAA</option>
  <option value="0">BBB</option>
  <option value="0">CCC</option>
  <option value="0">ABC</option>
</select>
</form>
<script language="JavaScript">
bild01 = new Image();
bild01.src = "a2.gif"
bild02 = new Image();
bild02.src = "b2.gif"
bild03 = new Image();
bild03.src = "c2.gif"

var string = document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text;

function TextLetters(string) {
 for (i=0; i<string.length; i++) {
  if (string.charAt(i) == "A") {document.leer1.src=bild01.src}
         if (string.charAt(i) == "B") {document.leer2.src=bild02.src}
         if (string.charAt(i) == "C") {document.leer3.src=bild03.src}
   }
   }
</script>
</CENTER>
</BODY>

Schon mal vielen Daank!
Gruss
Patrick

  1. Hi,

    Ich möchte den Wert von einem Select-Feld auslesen und dann grafisch darstellen. Das Beispiel unten funzt fast, ausser dass sich nur einmal ein Buchstabe ändert (statt allen) und dann geht nix mehr. Hat jemand eine Idee an was es liegen könnte?

    Hier rein:

    <select name="TextSelect" onChange="TextLetters(string)">

    Kommt das hier:

    var string = document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text;

    und zwar:
    <select name="TextSelect" onChange="TextLetters(document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text)">

    Grüße aus Düsseldorf,

    Aleksej

    P.S. wer gut das nächste mal einfach einen Link zu haben, sonst muss man die ganzen bilder selber einsetzen.

    1. und zwar:
      <select name="TextSelect" onChange="TextLetters(document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text)">

      Vielen Dank Aleksej! Funtz leider noch nicht ganz - es erscheint immer 'ABC'.
      Ich habs mal noch so versucht (mit andere Buchstaben abfangen):

      var string = document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text;

      function TextLetters(string) {
       for (i=0; i<string.length; i++) {
          if (string.charAt(i) == "A") {document.leer1.src=bild01.src;}
                              else { if (string.charAt(i) == "B") {document.leer2.src=bild02.src;}
                              else { if (string.charAt(i) == "C") {document.leer3.src=bild03.src;}
         else {
         ((document.leer1.src=bild00.src)&&(document.leer2.src=bild00.src)&&(document.leer3.src=bild00.src));
          }
         }}
       }
      }

      Aber geht nicht. Ich vermute es liegt an der Adressierung bzw. der Nummerierung der Bilder, aber ich komme momentan einfach nicht drauf.
      Grüsse
      Patrick

      P.S. wer gut das nächste mal einfach einen Link zu haben, sonst muss man die ganzen bilder selber einsetzen.

      OK, schon geschehen :-)

      1. OK, schon geschehen :-)

        Hmmm... sorry! Die URL ging irgendwie nicht mit... Also hier:
        http://www.tiersuche.ch/select

      2. Hallo,

        Vielen Dank Aleksej! Funtz leider noch nicht ganz - es erscheint immer 'ABC'.
        Ich habs mal noch so versucht (mit andere Buchstaben abfangen):
        Aber geht nicht. Ich vermute es liegt an der Adressierung bzw. der Nummerierung der Bilder, aber ich komme momentan einfach nicht drauf.

        Dass, kommt schonmal weg, ist jetzt unnötig:
        var string = document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text;

        if (string.charAt(i) == "A") {document.leer1.src=bild01.src;}
        Mal überlegen, wenn das erste Zeichen A ist wird dem ersten leeren Bild das A-Bild zugewisen.
        if (string.charAt(i) == "A") {document.leer1.src=bild01.src;}
        Wenn das zweite Zeichen A ist wird dem ersten leeren Bild das A-Bild zugewisen.
        if (string.charAt(i) == "A") {document.leer1.src=bild01.src;}
        Wenn das dritte Zeichen A ist wird dem ersten leeren Bild das A-Bild zugewisen.

        Kannst du mir volgen? egal welche position das zeichen hat, es wird immer das selbe leere bild dem entsprechendem Buchstaben zugewisen.
        window.document.images[i].src= .....

        Grüße aus Düsseldorf,

        Aleksej

        1. Dass, kommt schonmal weg, ist jetzt unnötig:
          var string = document.TextForm.TextSelect.options[document.TextForm.TextSelect.options.selectedIndex].text;

          Ja, logo :-)

          Kannst du mir volgen? egal welche position das zeichen hat, es wird immer das selbe leere bild dem entsprechendem Buchstaben zugewisen.
          window.document.images[i].src= .....

          Na klar, es nutzt nix wenn immer wieder das gleiche Bild angesprochen wird. Jetzt funzt es wie es sollte! Wohl zu viele Bäume im Wald :-)
          Vielen Dank für deine Hilfe!
          Grüsse
          Patrick

        2. HI

          window.document.images[i].src= .....

          Jetzt kommt strafverschärfend hinzu, dass die Grafiken in einem Layer (DIV) liegen. Für den NN 4.75 gehts mit

          else {  if (string.charAt(i) == "a") {document.NameLayer.document.images[i].src=bilda1.src;}

          Aber für IE und NN 6 müsste es doch wie folgt funzen:

          else {  if (string.charAt(i) == "a") {document.all[NameLayer].images[i].src=bilda1.src;}

          und

          else {  if (string.charAt(i) == "a") {document.layers[NameLayer].images[i].src=bilda1.src;}

          Den Layer braucht es, weil noch andere Bilder da sind die aber nicht geändert werden dürfen (HG zum Bilder-Text).

          Danke & Gruss
          Patrick

          1. Na, da kann ich dir nicht helfen, wo ich mit js angefangen habe gab's sowas schon nciht mehr, aber, ist es denn wirklich notwendig auf nn4 rücksichtzunehmen? ansonsten wird es in selfhtml schon irgendwo 'vollstendigkeitshalber' erwähnt worden sein.

            Grüße aus Düsseldorf,

            Aleksej

            1. Na, da kann ich dir nicht helfen, wo ich mit js angefangen habe gab's sowas schon nciht mehr, aber, ist es denn wirklich notwendig auf nn4 rücksichtzunehmen?

              Wäre schon gut :-)
              Ich habs:
              NN 6.x / IE
              else {  if (string.charAt(i) == "a") {document.leerIE[i].src=bilda1.src;}
              wobei alle GIF's im Layer 'leerIE' heissen. Nur in Opera gehts noch nicht... mal gucken, irgendwie wirds auch da noch gehen :-)
              Danke & Grüsse
              Patrick