Hallo zusammen
ich habe versucht in mein Skript mit Javascript abhängige Dropdownfelder umzusetzen.
Jedoch hab ich noch folgendes Problem
Die 2. Dropdownbox wird nicht gefüllt
Hier mein Code:
...
<script type="text/javascript">
<!--
<?php
// abhängiges Kombifeld erzeugen
$rs=mysql_query(" select * from tbl_artikel;") or die(mysql_error());
$rows=mysql_num_rows($rs);
echo "\tvar liste2=new Array($rows)\n"
. "\tfor(var i=0;i<liste2.length;i++)\n"
. "\t\tliste2[i]=new Array(2);\n";
$n=0;
while($zeile=mysql_fetch_assoc($rs)) {
echo "\tliste2[$n][0]=".$zeile['art_id'].";\n"
. "\tliste2[$n][1]='".$zeile['art_bez']."';\n"
. "\tliste2[$n][2]=".$zeile['art_grp'].";\n";
$n++;
}
?>
function update_drp2() {
var x=document.frm_auswahl.drp2.length;
for(var n=0; n<x; n++)
document.frm_auswahl.drp2.options[0]=null;
for(n=0; n<liste2.length; n++) {
if(liste2[n][2]==document.frm_auswahl.drp1.value) {
var NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);
document.frm_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
}
}
}
-->
</script>
</head>
<body>
...
<td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
<form name="frm_auswahl">
<select name="drp1" size="1" onChange="update_drp2()" class="input" style="WIDTH: 300px">
<?php
$rs=mysql_query("select * from tbl_art_gruppe") or die(mysql_error());
while($zeile=mysql_fetch_assoc($rs)) {
echo "<option value="".$zeile['art_grp_id']
. "">".$zeile['art_gruppe']."</option>\n";
}
?>
</select>
</div></td>
</tr>
<tr>
<td width="30%" bgcolor="#e7e7e7" class="td"><div align="left">Art</div></td>
<td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
<select name="drp2" size="1" class="input" style="WIDTH: 300px">
<option>Start</option>
</select>
</form>
<script type="text/javascript">
update_drp2()
</script>
Im Browser wird kein gelbes Dreieck unten links angezeigt, nur wenn ich in der 1. Dropbox
den Eintrag ändere kommt unten links ein gelbes Dreieck der auf folgende Zeile Verweist
var x=document.frm_auswahl.drp2.length;
Kann mir dabei evtl jemand helfen den Fehler zu beheben ?
Weiß denn keiner von euch einen Rat ?