índice.asp
Código de programa:
<html>
<cabeza>
<título></título>
<meta content="text/html; charset=gb2312" http-equiv="tipo-de-contenido">
<tipo de estilo="text/css"><!--
FUENTE{tamaño de fuente:12px}
TD{tamaño de fuente:12px}
A{color:#333399}
R: flotar{color:#FF6600}
--></estilo>
<script language="JavaScript" tipo="texto/JavaScript"><!--
función funOnload(){
document.all.list_file.src="jscript_city.asp?base=0&sele=0-&elem=Select01";
}
//pSerie base, basada en 0,
//pSele es el valor de <opción
//pEle es el nombre del formulario del siguiente nivel
función cambiarSelect(pBase,pSele,pElem){
//Después de cambiar una lista. Borra los valores de la lista futura.
for(i=parseInt(pElem.replace("Seleccionar",""));i<=5;i++){
vartmp="000"+i;
var pElem1=eval("document.Form1.Select"+tmp.substr(tmp.length-2));
pElem1.length=1;
pElem1.selectedIndex=0;
}
//JS usa ASP para obtener los datos de la base de datos para actualizar la lista subordinada
document.all.list_file.src="jscript_city.asp?base="+pBase+"&sele="+pSele+"&elem="+pElem;
}
//--></script>
<script id="list_file" idioma="JavaScript" tipo="text/JavaScript" src=""></script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="2" text="#333333" onload="funOnload();">
<nombre del formulario="Formulario1">
<select name="Select01" onchange="chgSelect(1,this.options[this.selectedIndex].value,'Select02')">
<option value="">Guardar...</option>
</seleccionar>
<select name="Select02" onchange="chgSelect(2,this.options[this.selectedIndex].value,'Select03')">
<option value="">Ciudad...</option>
</seleccionar>
<select name="Select03" onchange="chgSelect(3,this.options[this.selectedIndex].value,'Select04')">
<option value="">Condado...</option>
</seleccionar>
<select name="Select04" onchange="chgSelect(4,this.options[this.selectedIndex].value,'Select05')">
<option value="">País...</option>
</seleccionar>
<seleccione nombre="Select05">
<option value="">Pueblo...</option>
</seleccionar>
</formulario>
</cuerpo></html>
'jscript_city.asp
Código de programa:
<%
' nivel del menú desplegable varBase
' ID de la base de datos varSele del elemento del menú desplegable seleccionado
' varElem El nombre del formulario del siguiente nivel
varBase=Request.QueryString("base")
varSele=Izquierda(Request.QueryString("sele"),InStr(Request.QueryString("sele"),"-")-1)
varElem=Request.QueryString("elem")
varDistName=""
varAutoID=""
Establecer conDB=Server.CreateObject("ADODB.CONNECTION")
conDB.Open "Driver={Controlador de Microsoft Access (*.mdb)};DBQ="&Server.Mappath("db1.mdb")
sqlCommand="seleccione * de la tabla1 donde archivado1="&varBase&" y archivado2="&varSele
Establecer rsRecord=conDB.Execute(sqlCommand)
mientras no esté rsRecord.eof
varDistName=varDistName&chr(34)&rsRecord("filed3")&chr(34)
varAutoID=varAutoID&chr(34)&rsRecord("id")&chr(34)
rsRecord.movenext
Si no es rsRecord.Eof entonces
varDistName=varDistName&","
varAutoID=varAutoID&","
Terminar si
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
'------------------------------------------------
Huangcuo Zengcuoyu Village, Siming, Xiamen, Fujian, Shuitou Village, Xihu, Fengze, Quanzhou, Fujian.
La base de datos de conversión de cinco niveles anterior es:
'---------------------------------
ID archivado1 archivado2 archivado3
1 0 0 Fujian
2 1 1 Xiamén
3 1 1 Quanzhou
4 2 2 Simulación
5 3 4 Huang Cuo
6 4 5 Pueblo Tsang Chuo Eu
7 2 3 Fengze
8 3 7 Lago del Oeste
9 4 8 Pueblo Shuitou
'------------------------------------------------
Descripción de la base de datos:
numeración automática de identificación
archivado1 El nivel de la lista del menú desplegable (consulte el nivel. Puede establecer su precisión. Es de tipo numérico)
archivado2 El número de identificación del nivel anterior (use tipo entero largo)
archivado3 No hace falta decir esto (archivo. La longitud depende de la situación.
Este programa pasó bajo IIS4+WIN2000P+ACCESS2000).