índice.asp
Código do programa:
<html>
<cabeça>
<título></título>
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<style type="text/css"><!--
FONTE{tamanho da fonte:12px}
TD{tamanho da fonte:12px}
A{cor:#333399}
A:hover{cor:#FF6600}
--></estilo>
<script idioma="JavaScript" type="text/JavaScript"><!--
funçãofunOnload(){
document.all.list_file.src="jscript_city.asp?base=0&sele=0-&elem=Select01";
}
//série pBase, baseada em 0,
//pSele é o valor de <opção
//pEle é o nome do formulário de próximo nível
função chgSelect(pBase,pSele,pElem){
//Depois de alterar uma lista. Limpa os valores futuros da lista.
for(i=parseInt(pElem.replace("Select",""));i<=5;i++){
vartmp="000"+i;
var pElem1=eval("document.Form1.Select"+tmp.substr(tmp.length-2))
;
pElem1.selectedIndex=0;
}
//JS usa ASP para obter os dados do banco de dados para atualizar a lista subordinada
document.all.list_file.src="jscript_city.asp?base="+pBase+"&sele="+pSele+"&elem="+pElem;
}
//--></script>
<script id="list_file" idioma="JavaScript" type="text/JavaScript" src=""></script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="2" text="#333333" onload="funOnload();">
<nome do formulário="Formulário1">
<select name="Select01" onchange="chgSelect(1,this.options[this.selectedIndex].value,'Select02')">
<option value="">Salvar...</option>
</selecionar>
<select name="Select02" onchange="chgSelect(2,this.options[this.selectedIndex].value,'Select03')">
<option value="">Cidade...</option>
</selecionar>
<select name="Select03" onchange="chgSelect(3,this.options[this.selectedIndex].value,'Select04')">
<option value="">Condado...</option>
</selecionar>
<select name="Select04" onchange="chgSelect(4,this.options[this.selectedIndex].value,'Select05')">
<option value="">País...</option>
</selecionar>
<selecione nome="Selecione05">
<option value="">Aldeia...</option>
</selecionar>
</form>
</body></html>
'jscript_cidade.asp
Código do programa:
<%
'nível do menu suspenso varBase
' varSele ID do banco de dados do item do menu suspenso selecionado
' varElem O nome do formulário de próximo nível
varBase=Request.QueryString("base")
varSele=Left(Request.QueryString("sele"),InStr(Request.QueryString("sele"),"-")-1)
varElem=Request.QueryString("elem")
varDistName=""
varAutoID=""
Definir conDB=Server.CreateObject("ADODB.CONNECTION")
conDB.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db1.mdb")
sqlCommand="select * da tabela1 onde arquivado1="&varBase&" e arquivado2="&varSele
Definir rsRecord=conDB.Execute(sqlCommand)
embora não seja rsRecord.eof
varDistName=varDistName&chr(34)&rsRecord("arquivado3")&chr(34)
varAutoID=varAutoID&chr(34)&rsRecord("id")&chr(34)
rsRecord.movenext
Se não for rsRecord.Eof então
varDistName=varDistName&","
varAutoID=varAutoID&","
Terminar se
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;"&vbcrlf)
Response.Write("varElem.options[i+1].value=varAutoID+'-'+varDistName;"&vbcrlf)
Response.Write("}"&vbcrlf)
Response.Write("varElem.selectedIndex=0;"&vbcrlf)
%>
db1.mdb
'------------------------------------------------
Vila Huangcuo Zengcuoyu, Siming, Xiamen, Fujian, Vila Shuitou, Xihu, Fengze, Quanzhou, Fujian
O banco de dados de conversão de cinco níveis acima é:
'---------------------------------
id arquivado1 arquivado2 arquivado3
1 0 0 Fujian
2 1 1 Xiamen
3-1-1 Quanzhou
4 2 2 Simulação
5 3 4 Huangcuo
6 4 5 Aldeia Tsang Chuo Eu
7 2 3 Fengze
8 3 7 Lago Oeste
9 4 8 Vila Shuitou
'------------------------------------------------
Descrição do banco de dados:
numeração automática de identificação
arquivado1 O nível da lista do menu suspenso (veja o nível. Você pode definir sua precisão. É um tipo numérico)
arquivado2 O número de ID do nível anterior (use o tipo inteiro longo)
arquivado3 Escusado será dizer isto (arquivo. O comprimento depende da situação).
Este programa passou em IIS4+WIN2000P+ACCESS2000.