PHP_Dude: Mittels selectbox Arrayelement anzeigen

Hi Leute,

kann mir bitte jemand erklären warum folgender Code nicht funktioniert ?

<script language="JavaScript"><!--
var item = new Array();
item[0]='Bitte eine Farbe wählen';
item[89]='€ 10,10';
item[202]='€ 10,20';
item[211]='€ 10,25';
//--></script>

<select name="special" onChange="document.getElementById('preis1').innerHTML=item[this.options[this.selectedIndex].value]">
  <option value="0">Bitte wählen</option>
  <option value="89">weiß</option>
  <option value="202">hydronblau</option>
  <option value="211">kornblau</option>
</select>
<div id="preis1">Bitte eine Farbe wählen</div></td>

Einige Tags hab ich rausgenommen, damit es kürzer wird.
Wenn ich im select die value mit alert ausgeben lasse, dann bekomm ich die richtige zahl.
Wenn ich aber den Text aus dem Array haben will, dann schreibt er immer undefined hin.

thx für jede Hilfe

  1. Hallo,

    Dein Umgang mit Arrays kommt mir sehr unkonventionell vor. Versuch es mal mit:

    var item = new Array(4);
    item[0]='Bitte eine Farbe wählen';
    item[1]='€ 10,10';
    item[2]='€ 10,20';
    item[3]='€ 10,25';

    also fortlaufender Nummerierung. Wenn die Zahlen wichtig sind, lies mal unter "Assoziative Arrays" nach. http://selfhtml.teamone.de/javascript/objekte/array.htm#assoziative_arrays

    Gruß, Jürgen

    1. also fortlaufender Nummerierung. Wenn die Zahlen wichtig sind, lies mal unter "Assoziative Arrays" nach.

      Leider sind die Zahlen das einzige woran ich erkenne welchen Preis ich einsetzen muss, da ich das ganze für einen etwas ungewöhnlichen Shop benötige.

      Da dieses hydronblau bei fast allen Artikeln vorkommt und immer andere Preise gelten kann ich auch kein assoziative Array benutzen.

      Aber wenn es wirklich nur an dem Array liegt, dann lass ich mir noch was anderes dazu einfallen.

      thx
      PHP_Dude

  2. <script language="JavaScript"><!--

    hier fehlt das type Attribut.

    var item = new Array();
    item[0]='Bitte eine Farbe wählen';
    item[89]='€ 10,10';
    item[202]='€ 10,20';
    item[211]='€ 10,25';
    //--></script>

    <select name="special" onChange="document.getElementById('preis1').innerHTML=item[this.options[this.selectedIndex].value]">

    schau dir das mal genauer an!

    Deine Klammerung ist falsch.

    Struppi.

    1. Deine Klammerung ist falsch.

      Quatsch!

      lass dir mal mit einem alert(item) ausgeben, was item ist. Es gibt offensichtlich eine Funktion mt dem Namen item().
      Benenn das Array einfach um

      Struppi.

      1. Es gibt offensichtlich eine Funktion mt dem Namen item().
        Benenn das Array einfach um

        Struppi.

        Das wars :)

        THX

        PHP_Dude