如何在jsp里面实现两级级联下拉列表!
菜单只有二级,但是菜单的内容全部是放在sqll数据库的一个数据表中,字段如下idmenu1menu21k1hhh2k5dddd3bcdddl4k5lldkd那么一级菜单,...
菜单只有二级,但是菜单的内容全部是放在sqll数据库的一个数据表中,
字段如下
id menu1 menu2
1 k1 hhh
2 k5 dddd
3 bc dddl
4 k5 lldkd
那么一级菜单,k1,k5,bc 有重复的就必须得去掉
选择一级列表,二级菜单就显示相应的数据!但是一级的数据不变!
会的尽量把代码写出来!小弟在此谢了! 展开
字段如下
id menu1 menu2
1 k1 hhh
2 k5 dddd
3 bc dddl
4 k5 lldkd
那么一级菜单,k1,k5,bc 有重复的就必须得去掉
选择一级列表,二级菜单就显示相应的数据!但是一级的数据不变!
会的尽量把代码写出来!小弟在此谢了! 展开
2个回答
2013-08-11
展开全部
<script language = "JavaScript">
type2s=new Object();
<%
Connect conn= new Connect();
String str1="select count(distinct menu1) from classify group by menu1";
ResultSet rs1=conn.pst.executeQuery(str1);
while(rs1.next()){
str1="select*from classify where menu1='"+rs1.getString("menu1")+"'";
ResultSet rs2=conn.pst.executeQuery(str1);
if(rs2.next()){
rs2.last();
int rowcount=rs2.getRow();
String sz="type2s['"+rs1.getString("menu1")+"']=new Array(";
for(int k=1;k<=rowcount;k++){
rs2.absolute(k);
if(k<rowcount){
sz+="'"+rs2.getString("menu2")+"',";
}else {
sz+="'"+rs2.getString("menu2")+"');";
}
}
out.println(sz);
}
}
%>
function choosetype2(type1,type2){
var t1,t2;
var i,ii;
t1=type1.value;
t2=type2.value;
type2.length=1;
if(t1=='0') return;
if(typeof(type2s[t1])=='undefined') return;
for(i=0; i<type2s[t1].length; i++)
{
ii = i+1;
type2.options[ii] = new Option();
type2.options[ii].text = type2s[t1][i];
type2.options[ii].value = type2s[t1][i];
}
}
</script>
<body>
<form name="form1" method="post" action=""><br>
<select name="menu1" id="menu1" onchange="choosetype2(this, document.getElementById(menu2))">
<option value="n">请选择</option>
<%
//
String str="select count(distinct menu1) from menu1 group by menu1";
ResultSet rs=conn.pst.executeQuery(str);
while(rs.next()){
out.println("<option value='"+rs.getString("menu1")+"'>"+ rs.getString("menu1")+"</option>");
}
%>
</select>
<select name="menu2" id="menu2">
<option value="n">请选择</option>
</select>
</form>
</body>
type2s=new Object();
<%
Connect conn= new Connect();
String str1="select count(distinct menu1) from classify group by menu1";
ResultSet rs1=conn.pst.executeQuery(str1);
while(rs1.next()){
str1="select*from classify where menu1='"+rs1.getString("menu1")+"'";
ResultSet rs2=conn.pst.executeQuery(str1);
if(rs2.next()){
rs2.last();
int rowcount=rs2.getRow();
String sz="type2s['"+rs1.getString("menu1")+"']=new Array(";
for(int k=1;k<=rowcount;k++){
rs2.absolute(k);
if(k<rowcount){
sz+="'"+rs2.getString("menu2")+"',";
}else {
sz+="'"+rs2.getString("menu2")+"');";
}
}
out.println(sz);
}
}
%>
function choosetype2(type1,type2){
var t1,t2;
var i,ii;
t1=type1.value;
t2=type2.value;
type2.length=1;
if(t1=='0') return;
if(typeof(type2s[t1])=='undefined') return;
for(i=0; i<type2s[t1].length; i++)
{
ii = i+1;
type2.options[ii] = new Option();
type2.options[ii].text = type2s[t1][i];
type2.options[ii].value = type2s[t1][i];
}
}
</script>
<body>
<form name="form1" method="post" action=""><br>
<select name="menu1" id="menu1" onchange="choosetype2(this, document.getElementById(menu2))">
<option value="n">请选择</option>
<%
//
String str="select count(distinct menu1) from menu1 group by menu1";
ResultSet rs=conn.pst.executeQuery(str);
while(rs.next()){
out.println("<option value='"+rs.getString("menu1")+"'>"+ rs.getString("menu1")+"</option>");
}
%>
</select>
<select name="menu2" id="menu2">
<option value="n">请选择</option>
</select>
</form>
</body>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-11
展开全部
去搜一下网上N多代码实现的,很简单的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询