我需要根据另一个下拉列表中的选定字段填写下拉列表。我该如何实现?这是我的代码:
<tr>
<td>CITY :</td>
<td><select name="city">
<%
while (rs.next()) {
%>
<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
<%
}
%>
</select></td>
</tr>
<%
rs = db.runQuery(conn, "Select distinct town from adress where city='" + request.getParameter("city") +"'");
%>
<tr>
<td>TOWN</td>
<td><select name="town">
<%
while (rs.next()) {
%>
<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
<%
}
%>
</select>
<tr>
第一个下拉列表正确填充,但第二个下拉列表无法正常工作。我该如何处理?
答案 0 :(得分:2)
你不能这样做的原因是JSP编译成Servlet并在服务器端运行。在选择城市之前,Servlet只运行一次。我认为最简单的解决方案是提交表格两次:
<select name="city" onChange="this.form.submit();">
更好的解决方案是在客户端使用Ajax,但这需要更多的JavaScript或一些JavaScript库或JSP标记库。对于此类任务,jQuery是一个非常有用的JavaScript框架。