jsp 联动菜单的跳转问题?
我用的是Js 控制跳转的,每跳转一次 就刷新一次页面。刷新之后 就得不到上次选的Option 值了?请求高手帮忙啊!
比如说 我选中”--武汉--“,就刷新一次页面,得到下拉菜单"汉口",但是 上个下拉菜单就不能保存--武汉--了?? ? ,我用 request 去请求 可是请求过来的值 是乱码。我做的是3级联动菜单,刷新第3次的时候,还是不能得到 request的值。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="jdbc.Jdbc"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.util.Arrays"%>
<%@page import="com.sun.xml.internal.txw2.Document"%>
<%@page import="javax.swing.text.html.Option"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
function area(){
var vv = area_id.value;
var op=area_id.options[area_id.selectedIndex].text;
var url="jdbc.jsp?area="+vv+"&opptin="+op;
location.href=url;
}
function city(){
var vv = city_id.value;
var op=city_id.options[city_id.selectedIndex].text;
var url="jdbc.jsp?city_id="+vv;
location.href=url;
}
function school(){
var vv = school_id.value;
var op=school_id.options[school_id.selectedIndex].text;
var url="jdbc.jsp?school_id="+vv;
location.href=url;
}
</script>
<body >
<%jdbc.Jdbc jdbc= new Jdbc();
ResultSet rs =jdbc.getJdbc2();
%>
<br></br>
城市:
<select name="area_id" id="area_id" onchange="area()" style="width: 100px">
<option >
<%=request.getParameter("opptin") %>
</option>
<%
while(rs.next()){ //城市查询
%>
<option value="<%=rs.getString(1) %>" ><%=rs.getString(2) %></option>
<%} %>
</select>
<br></br>
区县:
<select id="city_id" name="city_id" onchange="city()" style="width: 150px">
<option></option>
<%String area_id =request.getParameter("area");
%>
<% if(area_id==null && "".equals(area_id)){%>
<option> 请选择 </option>
<%} else{%>
<% ResultSet rs2 = jdbc.getJdbc2("SUPERIOR",area_id);
while(rs2.next()){ //value 区域查询
%>
<option selected="selected" value="<%=rs2.getString("code") %>" > <%=rs2.getString(2)%> </option>
<%}
}
%>
</select>
<br></br>
学校:
<select id="school_id" name="school_id" onchange="school()" style="width: 150px">
<option></option>
<%String city_id =request.getParameter("city_id"); //学校查询
%>
<% if(city_id==null){%>
<%} else{%>
<% ResultSet rs3 = jdbc.getJdbc3("SZXQ",city_id);
while(rs3.next()){ %>
<option value="<%=rs3.getString("XXBH") %>" > <%=rs3.getString(5)%> </option>
<%}}
%>
</select>
<br></br>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="150px">学校代码</td>
<td width="200px">学校名称</td>
<td width="200px">学校地址</td>
<td width="200px">联系电话</td>
</tr>
<% String class_id = request.getParameter("school_id");
if(class_id!=null){
ResultSet rs3 = jdbc.getJdbc3("XXBH",class_id);
while(rs3.next())%><%{ %>
<tr>
<td width="150px"><%=rs3.getString(1) %></td>
<td width="200px"><%=rs3.getString(5) %></td>
<td width="200px"><%=rs3.getString(7) %></td>
<td width="200px"><%=rs3.getString(8) %></td>
</tr>
<% }}else{%>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<%} %>
</table>
</body>
</html>
[解决办法]
分数太少了...............
[解决办法]
二级联动 为什么不用ajax做呢。 用ajax做不光能解决这个问题 还能减轻客户端和服务器端的压力
[解决办法]
大哥什么年代了,您还不用Ajax做联动?
[解决办法]
可用表单的形式,下拉框的onchange时间提交表单,表单action是当前页面,刷新后通过request.getParameter取上个页面提交的下拉框的值
[解决办法]
ajax+jsp实现二级联动下拉菜单
[解决办法]
楼上的 Demo不错 。。。
[解决办法]
刷新第三次的时候,你要把值传递过去,否则你是接受不到值的。。
至于乱码问题,你是地址栏传递中文,最好将中文进行转码,然后再去解码就可以了。。
[解决办法]
直接用ajax或者直接前台JS去做掉。
你这样对后台数据库会造成压力的