Hallo liebes Forum,
leider kämpfe ich seit Wochen mit einem PRoblem und komme nicht weiter.
Ich lasse mir ein DROPDOWN Feld (Select) dynamisch generieren, welches ich per DIV lade und fülle dieses dann ebenso dynamisch, je nachdem was im 1ten !! (statisch erstellten) Dropdown geklickt wurde.
Das ganze ist auf Automarken und Typen bezogen.
So klicke ich zB VW an und das 2te Dropdown soll mit allen VW Marken gefüllt werden...
Nun jetzt habe ich das soweit hinbekommen, das es im IE6.x funktioniert, im FF geht es leider überhaupt nicht.
Des weiteren funktioniert es , seit heute, aus unerfindlichen Gründen im IE6.x auch nicht mehr.
Hier meine Funktion:
<body onload="update_auswahl_marke_modell">
<script language="JavaScript" type="text/JavaScript">
<!--
function update_auswahl_marke_modell()
{
document.getElementById('autotypen').innerHTML='<select name="autotype" width="150px" style="width:150px" class="pulldown"></select>';
var markeAuswahl = document.forms.suche.automarke;
var modellAuswahl = document.forms.suche.autotype;
modellAuswahl.options.length = 0; // DropDown Menü entleeren
if (markeAuswahl.options[markeAuswahl.selectedIndex].value == "0")
{ // JS if ANFANG
//Modelle durchlaufen für die x. Marke
modellAuswahl.options[0] = new Option("Typen...");
for (i=0; i < modellAuswahl.options.length; i++)
{
if (modellAuswahl.options[i].text == "Typen...")
{
modellAuswahl.selectedIndex = i;
}
}
} // JS if ENDE
<%
' Definiere SQL Statement:
strSQL = "SELECT automarkeid,automarke FROM automarke ORDER BY automarke ASC"
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs.open strSQL, strConnection
do until (rs.eof)
Response.Write("if (markeAuswahl.options[markeAuswahl.selectedIndex].value == """ & rs.fields("automarke") & """)" & vbcrlf)
StrSql2 = "Select automarke_id, autotype FROM DAautotype Where automarke_id=" & rs("automarkeid") & " ORDER BY Autotype ASC"
rs2.open StrSql2, strConnection
if rs2.bof and rs2.eof then
response.write (" { modellAuswahl.options[0] = new Option(""keine Type vorh."");")
else
zahl = 1
response.write (" {" & vbcrlf & " modellAuswahl.options[" & 0 & "] = new Option(""Typen..."");" & vbcrlf)
do until (rs2.eof)
response.write (" modellAuswahl.options[" & zahl & "] = new Option(""" & rs2("autotype") & """);" & vbcrlf)
zahl = zahl + 1
rs2.movenext
loop
end if
rs2.close %>
for (i=0; i < modellAuswahl.options.length; i++)
{
if (modellAuswahl.options[i].text == "")
{
modellAuswahl.selectedIndex = i;
}
}
} // JS if ENDE
<%
rs.movenext
loop
rs.close
Set rs = Nothing
%>
} //function ENDE
//-->
</script>
an der Stelle an welcher das 1te Dropdown geladen wird, steht:
<select size="1" name="automarke" onChange="update_auswahl_marke_modell();" width="150px" style="width:150px" class=pulldown>
<option value="0" selected>Marken...</option>
<%
' Definiere SQL Statement:
zahl = 1
strSQL = "SELECT automarkeid, automarke FROM automarke ORDER BY automarke ASC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSQL, strConnection
do until (rs.eof)
Response.Write("<option value=""" & rs("automarke") & """>" & rs("automarke") & "</option>" & vbcrlf)
zahl = zahl + 1
rs.movenext
loop
rs.close
Set rs = Nothing
%>
</select>
dann lade ich das DIV:
<div id="autotypen" align="center"></div>
Und als Fehlermeldung erhalte ich im IE:
Zeile: 21
Zeichen: 3
Fehler: options ist NULL oder kein Objekt
Code: 0
und im FF:
modellAuswahl has no properties
Kann mir jemand helfen, ich verzweifle.... ;((((
danke
Mike