asp 下拉菜单的联动 5
选择任何一个类型的时候,相应的名称就只有一个选项值,但数据中的记录不止一条。比如我选择类型‘衣服’,名称中只出现‘短袖’一条记录,但是数据中还有‘衬衫’....其他的记录...
选择任何一个类型的时候,相应的名称就只有一个选项值,但数据中的记录不止一条。比如我选择类型‘衣服’ ,名称中只出现‘短袖’一条记录,但是数据中还有‘衬衫’....其他的记录
<!-- #include virtual="conn.asp"-->
<%
sql="select * from Type_Name"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
sql2="select * from GoodsType"
set rs2=server.CreateObject("adodb.recordset")
rs2.open sql2,conn,1,1
%>
<script language = "JavaScript"> //js开始
var aaa;//定义aaa变量
aaa=0;//aaa赋0
bb = new Array();//创建bb动态数组
<%count = 0 '定义bb数组下标变量
do while not rs.eof%>//循环所有记录
bb[<%=count%>] = new Array("<%= trim(rs("goods_name"))%>","<%= trim(rs("type_name"))%>");//将(名称,类型)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>;传递动态数组最大下标
function chang1(dalei)//根据类型改变名称下拉内容的函数
{
document.form1.xiaolei.length = 0; //清空小类下拉框内容
document.form1.xiaolei.disabled=false;//设置小类下拉框失效
var i;//定义循环用的下标变量
document.form1.xiaolei.options[0] = new Option('请选择','');
var j;
j=0;
for (i=0;i < aaa; i++)//开始循环
{
if (bb[i][1] == dalei)//根据大类名进行筛选
{
j++;
document.form1.xiaolei.options[j] = new Option(bb[i][0],bb[i][0]);添加小类下拉框选项
}
}
if(document.form1.xiaolei.options.length>=1)
document.form1.xiaolei.disabled=true; }
</script>
<style type="text/css">
<!--
.STYLE1 {
color: #FF9966;
font-weight: bold;
font-size: 18px;
}
-->
</style>
<td><select name="dalei" id="dalei" onChange="chang1(document.form1.dalei.options[document.form1.dalei.selectedIndex].value)">" >
<option value="请选择" selected="selected">请选择</option>
<%do while not rs2.eof%>
<option value="<%=rs2("type_name")%>"><%=rs2("type_name")%></option>
<%
rs2.movenext
loop
rs2.Close
set rs2=nothing
%>
</select></td>
<td><select name="xiaolei" id="xiaolei">
</select></td> 展开
<!-- #include virtual="conn.asp"-->
<%
sql="select * from Type_Name"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
sql2="select * from GoodsType"
set rs2=server.CreateObject("adodb.recordset")
rs2.open sql2,conn,1,1
%>
<script language = "JavaScript"> //js开始
var aaa;//定义aaa变量
aaa=0;//aaa赋0
bb = new Array();//创建bb动态数组
<%count = 0 '定义bb数组下标变量
do while not rs.eof%>//循环所有记录
bb[<%=count%>] = new Array("<%= trim(rs("goods_name"))%>","<%= trim(rs("type_name"))%>");//将(名称,类型)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>;传递动态数组最大下标
function chang1(dalei)//根据类型改变名称下拉内容的函数
{
document.form1.xiaolei.length = 0; //清空小类下拉框内容
document.form1.xiaolei.disabled=false;//设置小类下拉框失效
var i;//定义循环用的下标变量
document.form1.xiaolei.options[0] = new Option('请选择','');
var j;
j=0;
for (i=0;i < aaa; i++)//开始循环
{
if (bb[i][1] == dalei)//根据大类名进行筛选
{
j++;
document.form1.xiaolei.options[j] = new Option(bb[i][0],bb[i][0]);添加小类下拉框选项
}
}
if(document.form1.xiaolei.options.length>=1)
document.form1.xiaolei.disabled=true; }
</script>
<style type="text/css">
<!--
.STYLE1 {
color: #FF9966;
font-weight: bold;
font-size: 18px;
}
-->
</style>
<td><select name="dalei" id="dalei" onChange="chang1(document.form1.dalei.options[document.form1.dalei.selectedIndex].value)">" >
<option value="请选择" selected="selected">请选择</option>
<%do while not rs2.eof%>
<option value="<%=rs2("type_name")%>"><%=rs2("type_name")%></option>
<%
rs2.movenext
loop
rs2.Close
set rs2=nothing
%>
</select></td>
<td><select name="xiaolei" id="xiaolei">
</select></td> 展开
2个回答
2010-08-12
展开全部
这里有一个多级联动select
你可以参考一下
你可以参考一下
参考资料: http://www.blueidea.com/common/shoutbox/redir.asp?9=j&id=11685
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询