深圳供应金属打包机:各位编程高手请进

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 02:42:17
我有个程序,有两个下拉列表,数据都是从数据库里调出来的,想显示系部和班级.要求是根据所选系部显示班级.大家看看我的代码,帮我改改.
<%
...
String sql="select * from Department";
ResultSet res=state.executeQuery(sql);
%>
<select name="department" id="department">
<option>选择系部</option>
<%
while(res.next())
{

De_name=res.getString(2);

%>

<option><% out.println(De_name); %></option>
<% }%>
</select>
<%
String str1="select * from Department where De_name='"+De_name+"'";
res=state.executeQuery(str1);
while(res.next())
{
De_dm=res.getString(1);
out.println(De_dm);//获取所选系部代码
}
String str="select * from Class where De_dm='"+De_dm+"'";
ResultSet result=state1.executeQuery(str);
%>
<select name="class1" id="class1">

<option>选择班级</option>
<%

while(result.next())
{
%>
<option><%= result.getString(2) %></option>
<%

}
}
catch(Exception e)
{
out.println(e);
}
%>
</select>

但是系部代码总是显示表里的最后一条记录,怎么回事啊??

首先你的String str1="select * from Department where De_name='"+De_name+"'"; 这里面的De_name是上面的循环里面的最后1条记录的字段,所以导致你下面的班级只会选出最后一个系的班级。
其次你如果要实现根据所选系自动改变班级option的功能,光有服务端代码是不够的,需要有客户端脚本来支持.