谁能给一个三级联动菜单的代码(asp)的

 我来答
在世贸天阶灌篮的高飞燕草
2006-10-17 · TA获得超过2378个赞
知道大有可为答主
回答量:2070
采纳率:0%
帮助的人:2019万
展开全部
三级联动菜单asp

代码:

<%@ Language=VBscript %>
<%
'************************************************************************************************************
'
' 单一文件版本Select下拉联动的数据库版本的实现
'
'
'************************************************************************************************************

%>
<html>
<title>联动下拉列表事例</title>
<body>
<script language = "javascript">
<!--
//第一个select的onchange事件函数

function RefreshSelect(o,n)
{ if(n==2) document.mxh.elements["s"+(n+1)].innerHTML=""
if(o.options[o.selectedIndex].value=="0")
document.mxh.elements["s"+n].innerHTML=""
else
{
document.mxh.btn.disabled = false
window.frames['hiddenFrame'].location.href = 'MultiSelect.asp?pid=' + o.options[o.selectedIndex].value+"&n="+n
}
}

function getSelected()
{
for(i=1;i<4;i++)
{
if(document.mxh.elements["s"+i].selectedIndex >-1)
alert("您选择了:" + document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].value + " - " + document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].text)
}
}
//-->
</script>
<form name=mxh>
<input value="页面的其它内容不会改变。" style="width:90%"><br>
<select name="s1" onchange = "RefreshSelect(this,2)"><option value="0">--请选择--</select>
<select name="s2" onchange = "RefreshSelect(this,3)"><option value="0">--请选择--</select>
<select name="s3"></select>
<input type="button" name='btn' disabled = true value = "查看选择" onclick="getSelected()">
</form>
<iframe name="hiddenFrame" style="display:none"></iframe>
</body>
<%

'本程序分2部分,一个用来进行提交生成新数据的,一个用来初始化的,
'其实,这样对于理解并不是很有利,暂且这样实现,希望您能看的明白哦,放在两个文件里比较好理解啊

'1,初始化部分开始,主要工作:
'a,初始化第一个下拉列表

Dim sql,rs,cn,i
i = 0
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("MultiSelect.mdb")
If Request.QueryString("pid") = "" Then
'初始化部分
Set rs = cn.Execute("SELECT * FROM Area Where pid=0")
Response.Write "<script language = 'javascript'>" & vbCrLf
Response.Write "var arr1 = new Array()" & vbCrLf
Response.Write "var arr2 = new Array()" & vbCrLf

While Not rs.EOF
Response.Write "arr1[" & i & "] = '" & rs("id") & "'" & vbCrLf
Response.Write "arr2[" & i & "] = '" & rs("Name") & "'" & vbCrLf
i = i +1
rs.MoveNext
Wend
'为安全起见
Response.Write "window.onload = new function() {" & vbCrLf
Response.Write "select1 = document.mxh.s1" & vbCrLf
Response.Write "for(i = 1;i<arr1.length + 1;i++)" & vbCrLf
Response.Write "select1.options[i] = new Option(arr2[i-1],arr1[i-1])" & vbCrLf
Response.Write "}" & vbCrLf
Response.Write "</script>" & vbCrLf
Else
'处理数据的提交
strTreeId = Request.QueryString("pid")
If strTreeId = "" Then strTreeId = 0
If IsNumeric(strTreeId) = False Then strTreeId = 0
Response.Clear
Response.Write "<script language = 'javascript'>" & vbCrLf
Response.Write "select" & Request.QueryString("n") & " = window.parent.document.mxh.s" & Request.QueryString("n") & vbCrLf
Response.Write "select" & Request.QueryString("n") & ".innerHTML = ''" & vbCrLf
Response.Write "select" & Request.QueryString("n") & ".options[0] = new Option(""--请选择--"",""0"")" & vbCrLf
Set rs = cn.Execute("SELECT * FROM Area Where pid = " & Request.QueryString("pid"))
While Not rs.EOF
Response.Write "select" & Request.QueryString("n") & ".options[select" & Request.QueryString("n") & ".length] = new Option('" & Trim(rs("Name")) & "','" & rs("id") & "')" & vbCrLf
rs.MoveNext
Wend
Response.Write "</script>" & vbCrLf
End If
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>

数据库
http://sz.luohuedu.net/xml/Exam/MultiSelect.mdb

asp文件名字为
MultiSelect.asp

/////////////这个也可以参考/////////////////
http://zhengyaohua.bokee.com/1049287.html
mngenius
2006-10-18 · TA获得超过3165个赞
知道大有可为答主
回答量:2192
采纳率:0%
帮助的人:0
展开全部
<html>
<head>
<title>省市县关联菜单</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="fason,阿信,蒲佛信">
<meta name="Keywords" content="下拉菜单,关联,多级,fason,阿信,蒲佛信">
<meta name="Description" content="此程序为简单的省市县关联下拉菜单,有问题请往fason_pfx@hotmail.com发信">
<style>
body,select
{
font-size:9pt;
font-family:Verdana;
}
a
{
color:red;
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Dsy()
{
this.Items = {};
}
Dsy.prototype.add = function(id,iArray)
{
this.Items[id] = iArray;
}
Dsy.prototype.Exists = function(id)
{
if(typeof(this.Items[id]) == "undefined") return false;
return true;
}

function change(v){
var str="0";
for(i=0;i<v;i++){ str+=("_"+(document.getElementById(s[i]).selectedIndex-1));};
var ss=document.getElementById(s[v]);
with(ss){
length = 0;
options[0]=new Option(opt0[v],opt0[v]);
if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
{
if(dsy.Exists(str)){
ar = dsy.Items[str];
for(i=0;i<ar.length;i++)options[length]=new Option(ar[i],ar[i]);
if(v)options[1].selected = true;
}
}
if(++v<s.length){change(v);}
}
}

var dsy = new Dsy();

dsy.add("0",["安徽","北京","福建","甘肃"]);

dsy.add("0_0",["安庆","蚌埠","巢湖","池州","滁州","阜阳","合肥","淮北","淮南","黄山","六安","马鞍山","宿州","铜陵","芜湖","宣城","亳州"]);
dsy.add("0_0_0",["安庆市","怀宁县","潜山县","宿松县","太湖县","桐城市","望江县","岳西县","枞阳县"]);
dsy.add("0_0_1",["蚌埠市","固镇县","怀远县","五河县"]);
dsy.add("0_0_2",["巢湖市","含山县","和县","庐江县","无为县"]);
dsy.add("0_0_3",["池州市","东至县","青阳县","石台县"]);
dsy.add("0_0_4",["滁州市","定远县","凤阳县","来安县","明光市","全椒县","天长市"]);
dsy.add("0_0_5",["阜南县","阜阳市","界首市","临泉县","太和县","颖上县"]);
dsy.add("0_0_6",["长丰县","肥东县","肥西县"]);
dsy.add("0_0_7",["淮北市","濉溪县"]);
dsy.add("0_0_8",["凤台县","淮南市"]);
dsy.add("0_0_9",["黄山市","祁门县","休宁县","歙县","黟县"]);
dsy.add("0_0_10",["霍邱县","霍山县","金寨县","六安市","寿县","舒城县"]);
dsy.add("0_0_11",["当涂县","马鞍山市"]);
dsy.add("0_0_12",["灵璧县","宿州市","萧县","泗县","砀山县"]);
dsy.add("0_0_13",["铜陵市","铜陵县"]);
dsy.add("0_0_14",["繁昌县","南陵县","芜湖市","芜湖县"]);
dsy.add("0_0_15",["广德县","绩溪县","郎溪县","宁国市","宣城市","泾县","旌德县"]);
dsy.add("0_0_16",["利辛县","蒙城县","涡阳县","亳州市"]);

dsy.add("0_1",["北京"]);
dsy.add("0_1_0",["北京市","密云县","延庆县"]);

dsy.add("0_2",["福州","龙岩","南平","宁德","莆田","泉州","三明","厦门","漳州"]);
dsy.add("0_2_0",["长乐市","福清市","福州市","连江县","罗源县","闽侯县","闽清县","平潭县","永泰县"]);
dsy.add("0_2_1",["长汀县","连城县","龙岩市","上杭县","武平县","永定县","漳平市"]);
dsy.add("0_2_2",["光泽县","建阳市","建瓯市","南平市","浦城县","邵武市","顺昌县","松溪县","武夷山市","政和县"]);
dsy.add("0_2_3",["福安市","福鼎市","古田县","宁德市","屏南县","寿宁县","霞浦县","周宁县","柘荣县"]);
dsy.add("0_2_4",["莆田市","仙游县"]);
dsy.add("0_2_5",["安溪县","德化县","惠安县","金门县","晋江市","南安市","泉州市","石狮市","永春县"]);
dsy.add("0_2_6",["大田县","建宁县","将乐县","明溪县","宁化县","清流县","三明市","沙县","泰宁县","永安市","尤溪县"]);
dsy.add("0_2_7",["厦门市"]);
dsy.add("0_2_8",["长泰县","东山县","华安县","龙海市","南靖县","平和县","云霄县","漳浦县","漳州市","诏安县"]);

dsy.add("0_3",["白银","定西","甘南藏族自治州","嘉峪关","金昌","酒泉","兰州","临夏回族自治州","陇南","平凉","庆阳","天水","武威","张掖"]);
dsy.add("0_3_0",["白银市","会宁县","景泰县","靖远县"]);
dsy.add("0_3_1",["定西县","临洮县","陇西县","通渭县","渭源县","漳县","岷县"]);
dsy.add("0_3_2",["迭部县","合作市","临潭县","碌曲县","玛曲县","夏河县","舟曲县","卓尼县"]);
dsy.add("0_3_3",["嘉峪关市"]);
dsy.add("0_3_4",["金昌市","永昌县"]);
dsy.add("0_3_5",["阿克塞哈萨克族自治县","安西县","敦煌市","金塔县","酒泉市","肃北蒙古族自治县","玉门市"]);
dsy.add("0_3_6",["皋兰县","兰州市","永登县","榆中县"]);
dsy.add("0_3_7",["东乡族自治县","广河县","和政县","积石山保安族东乡族撒拉族自治县","康乐县","临夏市","临夏县","永靖县"]);
dsy.add("0_3_8",["成县","徽县","康县","礼县","两当县","文县","武都县","西和县","宕昌县"]);
dsy.add("0_3_9",["崇信县","华亭县","静宁县","灵台县","平凉市","庄浪县","泾川县"]);
dsy.add("0_3_10",["合水县","华池县","环县","宁县","庆城县","庆阳市","镇原县","正宁县"]);
dsy.add("0_3_11",["甘谷县","秦安县","清水县","天水市","武山县","张家川回族自治县"]);
dsy.add("0_3_12",["古浪县","民勤县","天祝藏族自治县","武威市"]);
dsy.add("0_3_13",["高台县","临泽县","民乐县","山丹县","肃南裕固族自治县","张掖市"]);

//-->
</SCRIPT>
<SCRIPT LANGUAGE = JavaScript>
<!--
//** Power by Fason(2004-3-11)
//** Email:fason_pfx@hotmail.com

var s=["s1","s2","s3"];
var opt0 = ["省份","地级市","市、县级市、县"];
function setup()
{
for(i=0;i<s.length-1;i++)
document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
change(0);
}
//-->
</SCRIPT>
</head>
<body bgcolor="#E0E0E0" onload="setup()">
多级关联菜单:
<form name="frm">
<select id="s1"><option>省份</option></select>
<select id="s2"><option>地级市</option></select>
<select id="s3"><option>市、县级市、县</option></select>
</form>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式