各位高人能不能给出具体代码或者最好阐述一下思路,然后给出伪代码。多谢!
5 个解决方案
#1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>11</TITLE>
<%dim conn
set conn=server.CreateObject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("bshujif.mdb")
sqlstr="select * from sort"
set rs=conn.execute(sqlstr)
set rs1=server.CreateObject("adodb.recordset")
sqlstr1 = "select * from nsort order by sort_id desc"
set rs1 = conn.execute(sqlstr1)
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
CountLinkAction = 0
do while not rs1.eof
%>
subcat[<%=CountLinkAction%>] = new Array("<%= trim(rs1("nsort_name"))%>","<%= trim(rs1("sort_id"))%>");
<%
CountLinkAction = CountLinkAction + 1
rs1.movenext
loop
rs1.close
set rs1=nothing
%>
onecount=<%=CountLinkAction%>;
function changelocation(locationid)
{
document.form1.nsort.length = 0;
var locationid=locationid;
var i;
document.form1.nsort.options[0] = new Option('选择小类','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.nsort.options[document.form1.nsort.length] = new Option(subcat[i][0], subcat[i][0]);
}
}
}
</script>
</HEAD>
<BODY>
<form name="form1" method="post" action="">
<select name="sort" onChange="changelocation(document.form1.sort.options[document.form1.sort.selectedIndex].value)">
<option selected>大类</option>
<%while rs.eof<>true
response.write("<option value="&rs("sort_id")&">"&rs("sort_name")&"</option>")
rs.movenext
wend%>
</select>
<select name="nsort" id="nsort">
<option selected>小类</option>
</select>
</form>
</BODY>
</HTML>
=============
数据库2个表,一个存放一级菜单,另一个存放二级
<HTML>
<HEAD>
<TITLE>11</TITLE>
<%dim conn
set conn=server.CreateObject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("bshujif.mdb")
sqlstr="select * from sort"
set rs=conn.execute(sqlstr)
set rs1=server.CreateObject("adodb.recordset")
sqlstr1 = "select * from nsort order by sort_id desc"
set rs1 = conn.execute(sqlstr1)
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
CountLinkAction = 0
do while not rs1.eof
%>
subcat[<%=CountLinkAction%>] = new Array("<%= trim(rs1("nsort_name"))%>","<%= trim(rs1("sort_id"))%>");
<%
CountLinkAction = CountLinkAction + 1
rs1.movenext
loop
rs1.close
set rs1=nothing
%>
onecount=<%=CountLinkAction%>;
function changelocation(locationid)
{
document.form1.nsort.length = 0;
var locationid=locationid;
var i;
document.form1.nsort.options[0] = new Option('选择小类','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.nsort.options[document.form1.nsort.length] = new Option(subcat[i][0], subcat[i][0]);
}
}
}
</script>
</HEAD>
<BODY>
<form name="form1" method="post" action="">
<select name="sort" onChange="changelocation(document.form1.sort.options[document.form1.sort.selectedIndex].value)">
<option selected>大类</option>
<%while rs.eof<>true
response.write("<option value="&rs("sort_id")&">"&rs("sort_name")&"</option>")
rs.movenext
wend%>
</select>
<select name="nsort" id="nsort">
<option selected>小类</option>
</select>
</form>
</BODY>
</HTML>
=============
数据库2个表,一个存放一级菜单,另一个存放二级
#2
在第一个select里面加入onmark函数,当第一个select 发生变化的时候,利用javascript来写onmark 函数,得到相应的变化值,这是我做jsp时的思路,不过写asp也应该可以这样实现
#3
把数据按省份排序,每个省份下的城市的名称和ID分别放在Name和ID的隐藏控件,由于是多个省,就成了两个数组,名称分别是Name和ID,然后当第一个Select 变化时用OnChange事件读取对应ID[i],Name[i]的值。然后就可以显示出来了。
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
#4
把数据按省份排序,每个省份下的城市的名称和ID分别放在Name和ID的隐藏控件,由于是多个省,就成了两个数组,名称分别是Name和ID,然后当第一个Select 变化时用OnChange事件读取对应ID[i],Name[i]的值。然后就可以显示出来了。
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
#5
前几天在做练习的时候,有练习你说的这块的问题:下拉联动。
做法是:
数据库中有一张表,表结构为:id,name,father_id.
id字段自增,name字段中存放所有省市的名称,father_id数字型,对应name中的省市名称,如果是省,则其为0,若为市,则它的father_id值为所在省的id.
通过while循环将省的名称存放select1中,option中的value值等于记录集中的id字段的值。
在点击select1时,提交表单,通过request取得其值,写SQL语句得到新的记录集,再通过循环将该省中的城市名称存放入select2中。
做法是:
数据库中有一张表,表结构为:id,name,father_id.
id字段自增,name字段中存放所有省市的名称,father_id数字型,对应name中的省市名称,如果是省,则其为0,若为市,则它的father_id值为所在省的id.
通过while循环将省的名称存放select1中,option中的value值等于记录集中的id字段的值。
在点击select1时,提交表单,通过request取得其值,写SQL语句得到新的记录集,再通过循环将该省中的城市名称存放入select2中。
#1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>11</TITLE>
<%dim conn
set conn=server.CreateObject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("bshujif.mdb")
sqlstr="select * from sort"
set rs=conn.execute(sqlstr)
set rs1=server.CreateObject("adodb.recordset")
sqlstr1 = "select * from nsort order by sort_id desc"
set rs1 = conn.execute(sqlstr1)
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
CountLinkAction = 0
do while not rs1.eof
%>
subcat[<%=CountLinkAction%>] = new Array("<%= trim(rs1("nsort_name"))%>","<%= trim(rs1("sort_id"))%>");
<%
CountLinkAction = CountLinkAction + 1
rs1.movenext
loop
rs1.close
set rs1=nothing
%>
onecount=<%=CountLinkAction%>;
function changelocation(locationid)
{
document.form1.nsort.length = 0;
var locationid=locationid;
var i;
document.form1.nsort.options[0] = new Option('选择小类','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.nsort.options[document.form1.nsort.length] = new Option(subcat[i][0], subcat[i][0]);
}
}
}
</script>
</HEAD>
<BODY>
<form name="form1" method="post" action="">
<select name="sort" onChange="changelocation(document.form1.sort.options[document.form1.sort.selectedIndex].value)">
<option selected>大类</option>
<%while rs.eof<>true
response.write("<option value="&rs("sort_id")&">"&rs("sort_name")&"</option>")
rs.movenext
wend%>
</select>
<select name="nsort" id="nsort">
<option selected>小类</option>
</select>
</form>
</BODY>
</HTML>
=============
数据库2个表,一个存放一级菜单,另一个存放二级
<HTML>
<HEAD>
<TITLE>11</TITLE>
<%dim conn
set conn=server.CreateObject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("bshujif.mdb")
sqlstr="select * from sort"
set rs=conn.execute(sqlstr)
set rs1=server.CreateObject("adodb.recordset")
sqlstr1 = "select * from nsort order by sort_id desc"
set rs1 = conn.execute(sqlstr1)
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
CountLinkAction = 0
do while not rs1.eof
%>
subcat[<%=CountLinkAction%>] = new Array("<%= trim(rs1("nsort_name"))%>","<%= trim(rs1("sort_id"))%>");
<%
CountLinkAction = CountLinkAction + 1
rs1.movenext
loop
rs1.close
set rs1=nothing
%>
onecount=<%=CountLinkAction%>;
function changelocation(locationid)
{
document.form1.nsort.length = 0;
var locationid=locationid;
var i;
document.form1.nsort.options[0] = new Option('选择小类','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.nsort.options[document.form1.nsort.length] = new Option(subcat[i][0], subcat[i][0]);
}
}
}
</script>
</HEAD>
<BODY>
<form name="form1" method="post" action="">
<select name="sort" onChange="changelocation(document.form1.sort.options[document.form1.sort.selectedIndex].value)">
<option selected>大类</option>
<%while rs.eof<>true
response.write("<option value="&rs("sort_id")&">"&rs("sort_name")&"</option>")
rs.movenext
wend%>
</select>
<select name="nsort" id="nsort">
<option selected>小类</option>
</select>
</form>
</BODY>
</HTML>
=============
数据库2个表,一个存放一级菜单,另一个存放二级
#2
在第一个select里面加入onmark函数,当第一个select 发生变化的时候,利用javascript来写onmark 函数,得到相应的变化值,这是我做jsp时的思路,不过写asp也应该可以这样实现
#3
把数据按省份排序,每个省份下的城市的名称和ID分别放在Name和ID的隐藏控件,由于是多个省,就成了两个数组,名称分别是Name和ID,然后当第一个Select 变化时用OnChange事件读取对应ID[i],Name[i]的值。然后就可以显示出来了。
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
#4
把数据按省份排序,每个省份下的城市的名称和ID分别放在Name和ID的隐藏控件,由于是多个省,就成了两个数组,名称分别是Name和ID,然后当第一个Select 变化时用OnChange事件读取对应ID[i],Name[i]的值。然后就可以显示出来了。
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
如果像一楼所说的,每一次变化就要读一次数据库,访问量大的时候服务器可能会Over的。所以还是一次读出来的好,{个人见意}
#5
前几天在做练习的时候,有练习你说的这块的问题:下拉联动。
做法是:
数据库中有一张表,表结构为:id,name,father_id.
id字段自增,name字段中存放所有省市的名称,father_id数字型,对应name中的省市名称,如果是省,则其为0,若为市,则它的father_id值为所在省的id.
通过while循环将省的名称存放select1中,option中的value值等于记录集中的id字段的值。
在点击select1时,提交表单,通过request取得其值,写SQL语句得到新的记录集,再通过循环将该省中的城市名称存放入select2中。
做法是:
数据库中有一张表,表结构为:id,name,father_id.
id字段自增,name字段中存放所有省市的名称,father_id数字型,对应name中的省市名称,如果是省,则其为0,若为市,则它的father_id值为所在省的id.
通过while循环将省的名称存放select1中,option中的value值等于记录集中的id字段的值。
在点击select1时,提交表单,通过request取得其值,写SQL语句得到新的记录集,再通过循环将该省中的城市名称存放入select2中。