Hallo,
<script type="text/javascript">
function open() {
farbe = document.getElementById("farbauswahl").value;
top.location.href='farben.php?farbe=' + farbe;
}
</script><select id="farbauswahl" onchange="open()" name="Farbe" size="1">
Warum denn einfach, wenn's auch umständlich geht, gelle.
Gefällt dir meine Lösung nicht, oder hast du sie gar nicht gelesen?
Der einzige Schönheitsfehler daran ist, dass im HTML-Attribut ein JavaScript-Befehl notiert ist. Das ist halt kein besonders schöner Stil.
Aber für deine Lösung gilt genau dasselbe:
Mit onchange="oeffnen()" hast du ebenfalls einen JavaScript-Befehl im HTML-Attribut stehen. Wozu dann also der Umstand mit einer separaten Funktion?
Wirklich besser wäre es z.B. so:
<select id="farbauswahl" name="Farbe" size="1">
<option value="1">rot</option>
<option value="4">schwarz</option>
<option value="2">blau</option>
<option value="6">gruen</option>
<option value="3">rosa</option>
</select>
<script type="text/javascript">
[code lang=javascript]
document.getElementById("farbauswahl").onchange = function () {top.location.href = 'farben.php?farbe=' + this.value;}
</script>[/code]
Dieses Script sollte übrigens nicht *vor* dem select-tag stehen, weil document.getElementById() sonst ins Leere greifen würde, da das select-tag mit der id "farbauswahl" erst später existiert.
Gruß, Don P