关于 列表/菜单 的问题!
如何能够实现 列表/菜单 的更新,大致上的意思就是,我在选中前一个列表/菜单的时候,后面的列表/菜单 能够自动更新为前面那个列表/菜单 所选的内容。
打个比喻:就比如说作一个论坛注册用户的时候需要添写地址,选中[中国]以后以后的列表/菜单中就更新出[省的名称],再选中省的名称以后就更新出[市的名称]。
请各位帮忙解决一下。可能我说的有些不怎么清楚,如果能明白的话请告诉我应该如何处理。谢谢。
问题点数:20、回复次数:7Top
1 楼lstup(流水)回复于 2005-01-22 23:33:57 得分 0
JS代码,我也说不清楚,你可以看看那些论坛的代码。右键看HTML源文件就可以了,那段JS COPY过去就可以了。
Top
2 楼biglrj99(玉面狼)回复于 2005-01-22 23:45:09 得分 20
<html>
<BODY>
<SELECT NAME="s1"><option>需要JavaScript才能正确显示</SELECT>
<SELECT NAME="s2"></SELECT>
<SELECT NAME="s3"></SELECT>
<SELECT NAME="s4"></SELECT>
<SCRIPT LANGUAGE="JavaScript">
<!--
//选择框的名字
selector = [ "s1", "s2", "s3", "s4" ];
//选择项: "名字", "值", 子选择
menu = [
"地球","1",
[
"中国","86",
[
"北京","BJ",
[
"--","1",null
],
"四川","SC",
[
"成都","28",null,
"乐山","",null,
"攀枝花","",null,
"自贡","",null,
"德阳","",null,
"绵阳","",null
]
],
"米国","1",
[
"加利福尼亚","CA",
[
"旧金山","1",null,
"洛杉矶","2",null
],
"华盛顿","WA",
[
"西雅图","seattle",null
]
]
],
"火星","2",
[
"大峡谷","86",
[
"小山丘","BJ",
[
"A地区","28",null,
"B地区","",null,
"C地区","",null
]
]
]
];
function wizz(level)
{
if( level == 0 )
a = menu;
else
{
str = "menu";
for( i=0; i<level; i++ )
str += "[" + (document.all[selector[i]].selectedIndex * 3 + 2) + "]";
a = eval(str);
}
if( a == null ) return;
s = document.all[selector[level]];
i = s.length;
while( i > 0 ) s.options[--i] = null;
while( i < Math.floor(a.length/3) )
s.options[i] = Option( a[i*3], a[i++*3+1] );
s.onchange = Function("wizz(" + (level+1) + ")");
wizz(level+1);
}
wizz(0);
//-->
</SCRIPT>
</BODY>
</HTML>
Top
3 楼biglrj99(玉面狼)回复于 2005-01-22 23:46:01 得分 0
去javascript版,搜索一下“级联菜单”,就有很多了Top
4 楼ahuiok(希羽)回复于 2005-01-23 01:28:34 得分 0
二级联动<转载>
Access数据库
● 数据库名:DB_ProvinceCat
● 表名:1)Tb_Province 2)Tb_City
说明:表Tb_Province用来存放省份名称;表Tb_City用来存放相应的城市名称。
● 字段名的设计
1) 表Tb_Province的字段有省份ID号(ProvinceCatID)、省份代码(ProvinceCode)、省份名称(ProvinceName),表1给出了示例:
ProvinceCatID ProvinceCode ProvinceName
1 01 北京市
2 02 上海市
3 03 天津市
4 04 重庆市
5 05 广东省
6 06 浙江省
7 07 福建省
8 08 海南省
9 09 江苏省
表1
2) 表Tb_City的字段有城市ID号(CityID)、城市代码(CityCode)、城市名称(CityName),表2给出了示例:
CityID CityCode CityName
1 01001 北京市
2 02001 上海市
3 03001 天津市
4 04001 重庆市
5 05001 广州市
6 05002 深圳市
7 05003 珠海市
8 05004 茂名市
9 05005 中山市
10 06001 杭州市
11 06002 温州市
12 07001 福州市
13 07002 厦门市
14 08001 海口市
15 08002 三亚市
16 08003 万宁市
17 08004 五指山市
18 09001 南京市
19 09002 苏州市
表2
说明:这里要注意的一点就是,身份代码要对应城市代码的头两位,数据库尽量不要出现有父亲没儿子的事情。
文件:TwoSelect.asp经简单测试好用!
<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=VBScript>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
Dim Cn,Rs
Dim SQL,StrDSN
Dim MyArray()
Set cn=Server.CreateObject("ADODB.connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
StrDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB_ProvinceCat.mdb")
Cn.Open strDSN
SQL="select * from Tb_Province order by ProvinceCatID"
Rs.Open SQL,cn,3,2
Rs.MoveFirst
redim MyArray(Rs.RecordCount-1)
%>
<table width="273" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="96"> <SELECT id=select1 style="WIDTH: 96px" name=select1>
<OPTION selected value=select<%=Rs("ProvinceCode")%>><%=Rs("ProvinceName")%></OPTION>
<%
MyArray(0)=Rs("ProvinceCode")
Rs.MoveNext
for i=1 to Rs.RecordCount-1
%>
<OPTION value=select<%=Rs("ProvinceCode")%>><%=Rs("ProvinceName")%></OPTION>
<%
MyArray(i)=Rs("ProvinceCode")
Rs.MoveNext
next
%>
</SELECT>
<%
Rs.Close
%>
</td>
<td width="96">
<%
for i=0 to ubound( MyArray)
SQL="select * from Tb_City where CityCode like '" & MyArray(i) & "%'"
'Response.End
Rs.Open SQL,cn,3,2
if Rs.RecordCount >0 then
Rs.MoveFirst
%>
<SELECT id=select<%=MyArray(i)%> style="WIDTH: 96px;display='none'" name=select<%=MyArray(i)%>>
<%do while not Rs.EOF %>
<OPTION value="<%=Rs("CityName")%>"><%=Rs("CityName")%></OPTION>
<%
Rs.MoveNext
loop
%>
</SELECT>
<%
end if
Rs.Close
next
%>
<SCRIPT LANGUAGE=vbscript>
<!--
dim Province,City
dim obj,lastObj
lastObj="select01"
obj="select01"
window.execScript "select01.style.display='block'" ,"vbs"
Province="北京市"
City="北京市"
Sub select1_onchange
obj=select1.value
if obj<>lastObj and isobject(eval(obj)) then
window.execScript Obj & ".style.display='block'" ,"vbs"
window.execScript lastObj & ".style.display='none'" ,"vbs"
Province=select1.options(select1.selectedIndex).innertext
window.execScript "City=" & Obj & ".value" ,"vbs"
lastObj=select1.value
end if
End Sub
sub SubMe()
window.execScript "City=" & Obj & ".value" ,"vbs"
window.location.href="TwoSelect.asp?Province=" & Province & "&City=" & City
End Sub
-->
</SCRIPT>
</td>
<td width="81"><input type="button" name="Submit" value="按钮" onClick="vbs:SubMe"></td>
</tr>
</table>
</BODY>
</HTML>
Top
5 楼ahuiok(希羽)回复于 2005-01-23 01:29:03 得分 0
全部复制到DW里看,会看得舒服些。Top
6 楼ylc8685(King.ylc)回复于 2005-01-23 02:23:58 得分 0
谢谢各位帮助Top
7 楼ylc8685(King.ylc)回复于 2005-01-23 02:34:45 得分 0
ahuiok(fervor) ,谢谢你的帮助,刚才结帖的时候忘记给你加分了。Top




