欢迎光临
我们一直在努力

关于<SELECT>的无限级联(省|市|县|乡|村|…)-ASP教程,ASP应用

建站超值云服务器,限时71元/月

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下通过。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 关于<SELECT>的无限级联(省|市|县|乡|村|…)-ASP教程,ASP应用
分享到: 更多 (0)