四级联动下拉菜单问题,数据需从数据库中读取(特急)

hushuang7094 2005-10-17 04:58:38
四级联动下来菜单,数据需从数据库中读取

欢迎各位给出建议,代码也好。因为联动的内容需要用户自己去设置,主要指材料方面的,基本包括,材料的大类、中类、小类及规格型号,数据库到现在还不知道怎么建好,还有很多细节问题以后再问。
...全文
587 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtpdcyygy 2005-10-26
  • 打赏
  • 举报
回复
所属一级父类:
<select name="fl" class="textboxLINE_1" onChange="document.form2.submit();">
<%
set rs2=server.CreateObject("ADODB.Recordset")
set conn2=server.createobject("adodb.connection")
connstr2="DSN=gsj;uid=sa;pwd=sa;database=qjgsj_data"
conn2.open connstr2
sql2="select * from leibie"
rs2.open sql2,conn2,1,1

%>

<option><%=request.form("fl")%>
<% Do until rs2.EOF %>

<option><%=rs2("lbmc")%></option>
<%
rs2.movenext
loop
%>
</select>
所属二级父类:
<select name="zl1" class="textboxLINE_1" onChange="document.form2.submit();">
<%
set rs3=server.CreateObject("ADODB.Recordset")
set conn3=server.createobject("adodb.connection")
connstr3="DSN=gsj;uid=sa;pwd=sa;database=qjgsj_data"
conn3.open connstr3
sql3="select * from zbiao1 where ssfl='"&request.form("fl")&"'"
rs3.open sql3,conn3,1,1

%>
<option><%=request.form("zl1")%>
<% Do until rs3.EOF %>
<option><%=rs3("lbmc1")%></option>
<%
rs3.movenext
loop
%>
</select>
所属三级父类:
<select name="zl2" class="textboxLINE_1" onChange="document.form2.submit();">
<%
set rs4=server.CreateObject("ADODB.Recordset")
set conn4=server.createobject("adodb.connection")
connstr4="DSN=gsj;uid=sa;pwd=sa;database=qjgsj_data"
conn4.open connstr4
sql4="select * from zbiao2 where yjfl='"&request("fl")&"' and rjfl='"&request("zl1")&"'"
rs4.open sql4,conn4,1,1

%>
<option><%=request.form("zl2")%>
<% Do until rs4.EOF %>
<option><%=rs4("lbmc2")%></option>
<%
rs4.movenext
loop
%>
</select>
所属四级父类:
<select name="zl3" class="textboxLINE_1" id="zl3">
<%
set rs5=server.CreateObject("ADODB.Recordset")
set conn5=server.createobject("adodb.connection")
connstr5="DSN=gsj;uid=sa;pwd=sa;database=qjgsj_data"
conn5.open connstr5
sql5="select * from zbiao3 where yjfl='"&request("fl")&"' and rjfl='"&request("zl1")&"' and sjfl='"&request("zl2")&"'"
rs5.open sql5,conn5,1,1

%>
<% Do until rs5.EOF %>
<option><%=rs5("lbmc3")%></option>
<%
rs5.movenext
loop
%>
<option></option>
</select>
<input name="Submit22" type="submit" class="Bbutton" onclick="page1();" value="归类">
超级大笨狼 2005-10-26
  • 打赏
  • 举报
回复
superdullwolf.cnzone.net
地区连动
meiyu726 2005-10-26
  • 打赏
  • 举报
回复
index.asp
<html>
<head>
<title></title>
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<style type="text/css"><!--
FONT{font-size:12px}
TD{font-size:12px}
A{color:#333399}
A:hover{color:#FF6600}
--></style>
<script language="JavaScript" type="text/JavaScript"><!--
function funOnload(){
document.all.list_file.src="jscript_city.asp?base=0&sele=0-&elem=Select01";
}

//pBase级数,以0基,
//pSele是<option 的value值
//pEle是下一级的表单名字
function chgSelect(pBase,pSele,pElem){
//当改变了一个列表之后。清除以后的列表的值。
for(i=parseInt(pElem.replace("Select",""));i<=5;i++){
var tmp="000"+i;
var pElem1=eval("document.Form1.Select"+tmp.substr(tmp.length-2));

pElem1.length=1;
pElem1.selectedIndex=0;
}

//JS用ASP得到数据库的数据来更新下级列表
document.all.list_file.src="jscript_city.asp?base="+pBase+"&sele="+pSele+"&elem="+pElem;
}

//--></script>
<script id="list_file" language="JavaScript" type="text/JavaScript" src=""></script>
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="2" text="#333333" onload="funOnload();">
<form name="Form1">
<select name="Select01" onchange="chgSelect(1,this.options[this.selectedIndex].value,'Select02')">
<option value="">省...</option>
</select>
<select name="Select02" onchange="chgSelect(2,this.options[this.selectedIndex].value,'Select03')">
<option value="">市...</option>
</select>
<select name="Select03" onchange="chgSelect(3,this.options[this.selectedIndex].value,'Select04')">
<option value="">县...</option>
</select>
<select name="Select04" onchange="chgSelect(4,this.options[this.selectedIndex].value,'Select05')">
<option value="">乡...</option>
</select>
<select name="Select05">
<option value="">村...</option>
</select>
</form>
</body></html>

'jscript_city.asp
<%
' varBase 下拉菜单等级
' varSele 所选择下拉菜单项的数据库ID
' varElem 下一级的表单名称

varBase=Request.QueryString("base")
varSele=Left(Request.QueryString("sele"),InStr(Request.QueryString("sele"),"-")-1)
varElem=Request.QueryString("elem")

varDistName=""
varAutoID=""

Set conDB=Server.CreateObject("ADODB.CONNECTION")
conDB.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db1.mdb")

sqlCommand="select * from table1 where filed1="&varBase&" and filed2="&varSele
Set rsRecord=conDB.Execute(sqlCommand)

While Not rsRecord.eof
varDistName=varDistName&chr(34)&rsRecord("filed3")&chr(34)
varAutoID=varAutoID&chr(34)&rsRecord("id")&chr(34)

rsRecord.movenext
If Not rsRecord.Eof Then
varDistName=varDistName&","
varAutoID=varAutoID&","
End If
Wend

Response.Write("var varDistName=new Array("&varDistName&")"&vbcrlf)
Response.Write("var varAutoID=new Array("&varAutoID&")"&vbcrlf)

Response.Write("var varElem=eval("&chr(34)&"document.Form1."&varElem&chr(34)&")"&vbcrlf)

Response.Write("varElem.length=varDistName.length+1;"&vbcrlf)

Response.Write("for(var i=0;i<varDistName.length;i++){"&vbcrlf)
Response.Write(" varElem.options[i+1].text=varDistName[i];"&vbcrlf)
Response.Write(" varElem.options[i+1].value=varAutoID[i]+'-'+varDistName[i];"&vbcrlf)
Response.Write("}"&vbcrlf)

Response.Write("varElem.selectedIndex=0;"&vbcrlf)

%>

db1.mdb
'-------------------------------------------------
福建 厦门 思明 黄厝 曾厝桉村
福建 泉州 丰泽 西湖 水头村

如上面的五级转成数据库为:
'-------------------------------
id filed1 filed2 filed3
1 0 0 福建
2 1 1 厦门
3 1 1 泉州
4 2 2 思明
5 3 4 黄厝
6 4 5 曾厝桉村
7 2 3 丰泽
8 3 7 西湖
9 4 8 水头村
'-------------------------------------------------
数据库说明:
id 自动编号
filed1 下拉菜单列表的等级(看级数。可以设置它的精度。是数字类型)
filed2 上一级的id号(用长整型吧)
filed3 这个就不用说了吧(文件。长度自己看情况)

本程序在IIS4+WIN2000P+ACCESS2000下通过。
zwrtv 2005-10-26
  • 打赏
  • 举报
回复
学习下
八哥 2005-10-26
  • 打赏
  • 举报
回复
QQ:250009333
四级下拉,和数据库绑定,
但不好意思,需要人民币的,我穷疯了

victor888 2005-10-19
  • 打赏
  • 举报
回复
我的做好了,你先看看吧:www.92yao.com/worldweather.asp
liudeihua说的原理是对的,但不全面。
cccpro 2005-10-18
  • 打赏
  • 举报
回复
asp.net很容易,asp中select本身不支持事件,所以比较难,使用javascript就涉及安全问题!
victor888 2005-10-18
  • 打赏
  • 举报
回复
我也正在做,做好了我发出来。
wanghui0380 2005-10-17
  • 打赏
  • 举报
回复
四级,三级,二级,无限级有何区别??

没有任何区别,你会一个就能写出其它的
hushuang7094 2005-10-17
  • 打赏
  • 举报
回复
是的,我见到两种建数据库的方法,不知道哪种更适合用户用需求和程序编写,所以……
itzhiren 2005-10-17
  • 打赏
  • 举报
回复
连数据库都还没有?就讨论四级联动?
hushuang7094 2005-10-17
  • 打赏
  • 举报
回复
我已经搜索过了,看别人的时候自己可能比较急吧,心静不下来:(,而且我需要的是从数据库中的,很多都不是。
liudeihua 2005-10-17
  • 打赏
  • 举报
回复
可以利用querystring,每次将查询字段的值在本页刷新的时候传进来,然后查数据库,将得到的数据再添加到下拉列表中,无论几级联动,原理都是一样的。
tigerwen01 2005-10-17
  • 打赏
  • 举报
回复
无限级,自己改一下http://webasp.net/article/9/8497.htm
jspadmin 2005-10-17
  • 打赏
  • 举报
回复
主要是分类的处理,建议设一个分类id,每个id2位数,比如01表示第一大类,这样,第2大类的第3小类的第1子类的第12子类就是 01030112这样的一个数字组合,读取速度比较快,方便处理
dh20156 2005-10-17
  • 打赏
  • 举报
回复
搜索[联动]
preetyboy1982 2005-10-17
  • 打赏
  • 举报
回复
请说详细点好吗?最好有图片讲解!我们才可讨论!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧