har tiltettet dit eksempel til min database, men får kun tomme drop down bokse.
kan du evt. se hvad jeg gør galt, det må vel virke hvis det virker hos dig.
Det ser ud som om alle arrays bliver fyldt, men tror ikke funktionen loadbrands virker hos mig.
<%@ page language="java" import="java.sql.*" %>
<html>
<head>
</head>
<body onload="loadbrands()";>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:
mysql:///test");
Statement stmt = con.createStatement();
ResultSet rs1 = stmt.executeQuery("SELECT DISTINCT type FROM gaestebog");
String brands = "'vælg type'";
int nbrands = 0;
while(rs1.next())
{
brands = brands + ",'" + rs1.getString(1) +"'";
nbrands++;
}
rs1.close();
ResultSet rs2 = stmt.executeQuery("SELECT type,model FROM gaestebog");
String[] cars = new String[20];
String lastbrand = "";
int ix = 0;
while(rs2.next())
{
String col = rs2.getString(1);
if(!col.equals(lastbrand))
{
cars[ix] = "vælg model";
lastbrand = col;
ix++;
}
cars[ix] = cars[ix] + ",'" + rs2.getString(2) +"'";
}
rs2.close();
stmt.close();
con.close();
%>
<script type="text/javascript">
var brands = new Array(<%=brands%>);
var models = new Array(
<%
for(int i = 0; i < cars.length; i++) {
%>
new Array(<%=cars[i]%>)<%=(i<cars.length-1)?",":""%>
<%
}
%>
);
function loadbrands()
{
for(i=0;i<brands.length;i++)
{
document.car.brand.options[i] = new options(brands[i],brands[i]); //brands[i],brands[i]
}
}
function loadmodels()
{
var a = models[document.car.brand.selectedIndex-1];
for(i=0;i<a.length;i++) document.car.model.options[i] = new Option(a[i],a[i]);
}
</script>
<form name="car" method="POST" action="show.jsp">
Mærke:
<select name="brand" onchange="loadmodels();">
</select>
<br/>
Model:
<select name="model">
</select>
<br/>
<input type="SUBMIT" value="Vis"/>
</form>
</body>
</html>