index.asp
프로그램 코드:
<html>
<머리>
<제목></제목>
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<style type="text/css"><!--
글꼴{글꼴 크기:12px}
TD{글꼴 크기:12px}
A{색상:#333399}
A:hover{color:#FF6600}
--></style>
<script 언어="JavaScript" type="text/JavaScript"><!--
함수 funOnload(){
document.all.list_file.src="jscript_city.asp?base=0&sele=0-&elem=Select01";
}
//0을 기준으로 하는 pBase 시리즈,
//pSele은 <옵션의 값입니다.
//pEle은 다음 레벨 양식 이름입니다.
함수 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" 언어="JavaScript" type="text/JavaScript" src=""></script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="2" text="#333333" onload="funOnload();">
<양식 이름="양식1">
<select name="Select01" onchange="chgSelect(1,this.options[this.selectedIndex].value,'Select02')">
<옵션 값="">저장...</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>
<선택 이름="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=""
conDB=Server.CreateObject("ADODB.CONNECTION") 설정
conDB.Open "드라이버={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db1.mdb")
sqlCommand="select * from table1 where file1="&varBase&" 및 file2="&varSele
rsRecord.eof가 아닌 동안
rsRecord=conDB.Execute(sqlCommand)를 설정합니다.
varDistName=varDistName&chr(34)&rsRecord("filed3")&chr(34)
varAutoID=varAutoID&chr(34)&rsRecord("id")&chr(34)
rsRecord.movenext
rsRecord.Eof가 아닌 경우
varDistName=varDistName&","
varAutoID=varAutoID&","
종료 조건
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
위의 5단계 변환 데이터베이스는 다음과 같습니다.
'---------------------------------
ID 제출1 제출2 제출3
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 수이터우 마을
'------------------------------------------------
데이터베이스 설명:
아이디 자동번호 부여
field1 드롭다운 메뉴 목록의 레벨(레벨 참조. 정밀도를 설정할 수 있습니다. 숫자형입니다.)
file2 이전 레벨의 ID 번호 (긴 정수형 사용)
file3 말할 필요도 없습니다(파일. 길이는 상황에 따라 다름).
이 프로그램은 IIS4+WIN2000P+ACCESS2000에서 전달됩니다.