asp 2级联动菜单,动态获取2级下拉列表,2级列表来自两个表,求该,问起解决再加100分
<script>functionchangeselect1(province){if(province==1){<%Setrs=Server.CreateObject("...
<script>
function changeselect1(province)
{
if (province==1)
{
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
%>
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("pmodel"))%>",province,"<%= trim(rs("pid"))%>");//将(小类名,大类名,小类id)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>
}
else
{
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
%>
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("pmodel"))%>",province,"<%= trim(rs("pid"))%>");//将(小类名,大类名,小类id)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>
}
}
function changeselect1(province)//根据大类名改变小类下拉内容的函数
{
document.form1.city.length = 0; //清空小类下拉框内容
document.form1.city.disabled=false;//设置小类下拉框失效
var province=province;//这句个人认为没什么必要
var i;//定义循环用的下标变量
document.form1.city.options[0] = new Option('====行业名称====','');//给小类下拉框添加一个名称为“====行业名称====”的选项
for (i=0;i < aaa; i++)//开始循环
{
if (bb[i][1] == province)//根据大类名进行筛选
{
document.form1.city.options[document.form1.city.length] = new Option(bb[i][0], bb[i][0]);添加小类下拉框选项
}
}
if(document.form1.city.options.length==1)document.form1.city.disabled=true; //如果小类下拉框有选项,则恢复小类下拉框有效
}
</script>
<select name="province" id="province" onChange="changeselect1(document.news_add.province.options[document.news_add.province.selectedIndex].value)">
<option value="">====属于类别====</option>
<option value="1">=====文 件=====</option>
<option value="2">=====型 号=====</option>
</select>
<select name="city" class="buttonmain" id="city">
</select>
好吧, 我改的头大了,劳请各位 把我上面这些代码 改下。
<select name="province" id="province" onChange="changeselect1(document.news_add.province.options[document.news_add.province.selectedIndex].value)">
<option value="">====属于类别====</option>
<option value="1">=====文 件=====</option>
<option value="2">=====型 号=====</option>
</select>
<select name="city" class="buttonmain" id="city">
</select>
上面是一级菜单,
2级菜单 判断 1级菜单 选择的值 为1 时候
在2级菜单 调用
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
%>
这个表的内容,为2的时候
调用
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
这个表的内容,帮我弄个写好的 完整代码 我一共给300分 谢谢。。 展开
function changeselect1(province)
{
if (province==1)
{
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
%>
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("pmodel"))%>",province,"<%= trim(rs("pid"))%>");//将(小类名,大类名,小类id)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>
}
else
{
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
%>
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("pmodel"))%>",province,"<%= trim(rs("pid"))%>");//将(小类名,大类名,小类id)作为一个数据存入bb动态数组,bb变为一个二维数组
<%count = count + 1'下标变量递增
rs.movenext'移到下一条数据库记录
loop'循环
rs.close'关闭查询
set rs=nothing%>//释放变量
aaa=<%=count%>
}
}
function changeselect1(province)//根据大类名改变小类下拉内容的函数
{
document.form1.city.length = 0; //清空小类下拉框内容
document.form1.city.disabled=false;//设置小类下拉框失效
var province=province;//这句个人认为没什么必要
var i;//定义循环用的下标变量
document.form1.city.options[0] = new Option('====行业名称====','');//给小类下拉框添加一个名称为“====行业名称====”的选项
for (i=0;i < aaa; i++)//开始循环
{
if (bb[i][1] == province)//根据大类名进行筛选
{
document.form1.city.options[document.form1.city.length] = new Option(bb[i][0], bb[i][0]);添加小类下拉框选项
}
}
if(document.form1.city.options.length==1)document.form1.city.disabled=true; //如果小类下拉框有选项,则恢复小类下拉框有效
}
</script>
<select name="province" id="province" onChange="changeselect1(document.news_add.province.options[document.news_add.province.selectedIndex].value)">
<option value="">====属于类别====</option>
<option value="1">=====文 件=====</option>
<option value="2">=====型 号=====</option>
</select>
<select name="city" class="buttonmain" id="city">
</select>
好吧, 我改的头大了,劳请各位 把我上面这些代码 改下。
<select name="province" id="province" onChange="changeselect1(document.news_add.province.options[document.news_add.province.selectedIndex].value)">
<option value="">====属于类别====</option>
<option value="1">=====文 件=====</option>
<option value="2">=====型 号=====</option>
</select>
<select name="city" class="buttonmain" id="city">
</select>
上面是一级菜单,
2级菜单 判断 1级菜单 选择的值 为1 时候
在2级菜单 调用
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
%>
这个表的内容,为2的时候
调用
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
这个表的内容,帮我弄个写好的 完整代码 我一共给300分 谢谢。。 展开
展开全部
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>二级联动菜单</title>
<%
dim menu1list,menu2list
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
for i=1 t rs.recordcount
menu1list="|" & rs(1)
rs.movenext
next
rs.close
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
for i=1 t rs.recordcount
menu2list="|" & rs(1)
rs.movenext
next
rs.close
set rs=nothing
%>
</head>
<body onload="init()">
<form action="" method="post" name="creator" enctype="multipart/form-data">
<script language="javascript">
<!--
var where = new Array(2);
function comefrom(loca,locacity) { this.loca = loca; this.locacity = locacity; }
where[0]= new comefrom("====属于类别====","选择二级");
where[1] = new comefrom("=====文 件=====","<%=menu1list%>");
where[2] = new comefrom("=====型号=====","<%=menu2list%>");
function select() {
with(document.creator.province) { var loca2 = options[selectedIndex].value; }
for(i = 0;i < where.length;i ++) {
if (where[i].loca == loca2) {
loca3 = (where[i].locacity).split("|");
for(j = 0;j < loca3.length;j++) { with(document.creator.city) { length = loca3.length; options[j].text = loca3[j]; options[j].value = loca3[j]; var loca4=options[selectedIndex].value;}}
break;
}}
document.creator.newlocation.value=loca2+loca4;
}
function init() {
with(document.creator.province) {
length = where.length;
for(k=0;k<where.length;k++) { options[k].text = where[k].loca; options[k].value = where[k].loca; }
options[selectedIndex].text = where[0].loca; options[selectedIndex].value = where[0].loca;
}
with(document.creator.city) {
loca3 = (where[0].locacity).split("|");
length = loca3.length;
for(l=0;l<length;l++) { options[l].text = loca3[l]; options[l].value = loca3[l]; }
options[selectedIndex].text = loca3[0]; options[selectedIndex].value = loca3[0];
}}
-->
</script>
一级 <select name="province" onChange = "select()"></select> 二级 <select name="city" onChange = "select()"></select>
显示 <input type=text name="newlocation" maxlength=12 size=12 style="font-weight: bold">
</form>
</font>
</body>
</html>
如果还不会百度hi我。
1 记得加上conn数据库代码
2 更改menu1list="|" & rs(1)和menu2list="|" & rs(1)为你想要的字段。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>二级联动菜单</title>
<%
dim menu1list,menu2list
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from Producedowntitle"
rs.OPEN sql,Conn,1,1
for i=1 t rs.recordcount
menu1list="|" & rs(1)
rs.movenext
next
rs.close
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from producemodel"
rs.OPEN sql,Conn,1,1
for i=1 t rs.recordcount
menu2list="|" & rs(1)
rs.movenext
next
rs.close
set rs=nothing
%>
</head>
<body onload="init()">
<form action="" method="post" name="creator" enctype="multipart/form-data">
<script language="javascript">
<!--
var where = new Array(2);
function comefrom(loca,locacity) { this.loca = loca; this.locacity = locacity; }
where[0]= new comefrom("====属于类别====","选择二级");
where[1] = new comefrom("=====文 件=====","<%=menu1list%>");
where[2] = new comefrom("=====型号=====","<%=menu2list%>");
function select() {
with(document.creator.province) { var loca2 = options[selectedIndex].value; }
for(i = 0;i < where.length;i ++) {
if (where[i].loca == loca2) {
loca3 = (where[i].locacity).split("|");
for(j = 0;j < loca3.length;j++) { with(document.creator.city) { length = loca3.length; options[j].text = loca3[j]; options[j].value = loca3[j]; var loca4=options[selectedIndex].value;}}
break;
}}
document.creator.newlocation.value=loca2+loca4;
}
function init() {
with(document.creator.province) {
length = where.length;
for(k=0;k<where.length;k++) { options[k].text = where[k].loca; options[k].value = where[k].loca; }
options[selectedIndex].text = where[0].loca; options[selectedIndex].value = where[0].loca;
}
with(document.creator.city) {
loca3 = (where[0].locacity).split("|");
length = loca3.length;
for(l=0;l<length;l++) { options[l].text = loca3[l]; options[l].value = loca3[l]; }
options[selectedIndex].text = loca3[0]; options[selectedIndex].value = loca3[0];
}}
-->
</script>
一级 <select name="province" onChange = "select()"></select> 二级 <select name="city" onChange = "select()"></select>
显示 <input type=text name="newlocation" maxlength=12 size=12 style="font-weight: bold">
</form>
</font>
</body>
</html>
如果还不会百度hi我。
1 记得加上conn数据库代码
2 更改menu1list="|" & rs(1)和menu2list="|" & rs(1)为你想要的字段。
更多追问追答
追问
感谢回答,下周一我试试谁的可以,周一中午之前准时给分。辛苦啦,不可以继续提问大家,非常感谢
追答
恩 可以随时百度hi我
展开全部
2个方式,第一种option循环读取2个表的数据,第二种比较复杂就是建立一个内存表,把2张表的数据读出来放到这一张内存表中,然后再循环读出这张内存表表
追问
补充问题了,帮忙谢谢,一共给300分 解决了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码,这么多,就是还是看不明白你的意思,是这个不能显示,还是其他,希望补充说明以下。还是你看不明白这些代码
追问
补充问题了 帮忙谢谢 加分了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询