Hallo tina,
ich habe dir mal einen Vorschlag kommentiert, und hoffe, du kommst mit den spärlichen Kommentaren klar:
<script type="text/javascript">
var neu, testarray;
function init() {
neu = document.form1.auswahl;
testarray = new Array(5); // Array definieren
for (var i = 0; i < 5; i++) {
testarray[i] = new Array(); // mehrdimensionales Array definieren
}
testarray[0][0] = ["1", "eins"]; // so hast die Möglichkeit, value und text zu ändern
testarray[0][1] = ["grasgrün", "text"];
testarray[0][2] = ["1", "eins"];
testarray[1][0] = ["4", "vier"];
testarray[1][1] = ["Silber", "text"];
testarray[1][2] = ["1", "eins"];
testarray[2][0] = ["2", "zwei"];
testarray[2][1] = ["rot", "text"];
testarray[2][2] = ["2", "zwei"];
testarray[3][0] = ["5", "fünf"];
testarray[3][1] = ["blau", "text"];
testarray[3][2] = ["2", "zwei"];
testarray[4][0] = ["7", "sieben"];
testarray[4][1] = ["grasgrün", "text"];
testarray[4][2] = ["2", "zwei"];
}
function testEval(sel) {
neu.length = 0; // Aktuelle options loeschen
for(var i = 0; i < testarray[sel].length; i++) { // Liste neu aufbauen
neu[i] = new Option(testarray[sel][i][1], testarray[sel][i][0]);
neu[i].selected = true; // Eintrag selektieren
}
}
/* Hier weiss ich nicht, was du vorhast: Sollen die vorhandenen options gelöscht und durch neue ersetzt werden, oder sollen die neuen unten drangehängt werden? Welcher Eintrag soll selektiert werden? Auf jeden Fall siehst du, wie man das Ganze um ein paar unnötige Funktionen kürzen kann und wie man ohne eval auskommt.*/
</script>
</head>
<body onload="init()">
<form name="form1" action="">
<select name="auswahl" size="1" onchange="testEval(this.options.selectedIndex)">
<option value="1">hallo</option>
<option value="2">du</option>
<option value="3">da</option>
</select>
</form>
</body>
</html>
Grüße
pi