온라인으로 많은 3 단계 메뉴가 있지만 코드는 성가시다. 나는 이것이 매우 직관적이라고 말해야한다.
'말할 것도없이 먼저 데이터베이스에 연결해야합니다.
'데이터베이스 구조
'카테고리 1 테이블 이름 : 필드 : ID, 이름 설명 : ID는 기본 키이며 카테고리 1의 ID 값입니다. 이름은 카테고리 1의 이름입니다.
'카테고리 2 테이블 이름 : AA 필드 : ID, AID, 이름 설명 : ID는 기본 키이며 카테고리 2의 ID 값이며, AID는 카테고리 1의 ID 값이며 이름은 카테고리 2의 이름입니다.
'카테고리 3 테이블 이름 : AAA 필드 : ID, AID, AAID, 이름 설명 : ID는 기본 키이며 카테고리 3의 ID 값입니다. AID는 카테고리 1의 ID 값, AAID는 카테고리 2의 ID 값이며 이름은 카테고리 3의 이름입니다.
====== 테스트 1.asp 테스트 할 수 있습니다. 카테고리의 모든 수신 된 ID 값 ====
<%
response.write "1 :"& request.form ( "S1") & "<br>"
response.write "2 :"& request.form ( "S2") & "<br>"
response.write "3 :"& request.form ( "S3") & "<br>"
%>
코드 사본은 다음과 같습니다.
<!-3 레벨 링키지 메뉴 시작->
<scriptLanguage = "JavaScript">
<!-
<%
'보조 데이터를 배열로 저장하십시오
dimcount2, rsclass2, sqlclass2
setrsclass2 = server.createObject ( "adodb.recordset")
sqlclass2 = "select*froma"
rsclass2.opensqlclass2, Conn, 1,1
%>
varsubval2 = newArray ();
// 배열 구조 : 1 단계 루트 값, 두 번째 레벨 루트 값, 2 단계 디스플레이 값
<%
count2 = 0
dowhilenotrsclass.eof
%>
subval2 [<%= count2%>] = newArray ( '<%= rsclass2 ( "aid")%>', '<%= rsclass2 ( "id")%>', '<%= rsclass2 ( "name")%>').
<%
count2 = count2+1
rsclass2.movenext
고리
rsclass2.close
%>
<%
'3 단계 데이터를 배열에 저장하십시오
dimcount3, rsclass3, sqlclass3
setrsclass3 = server.createObject ( "adodb.recordset")
sqlclass3 = "select*fromaa"
rsclass3.opensqlclass3, Conn, 1,1
%>
varsubval3 = newArray ();
// 배열 구조 : 제 2 레벨 루트 값, 3 단계 루트 값, 3 단계 디스플레이 값
<%
count3 = 0
dowhilenotrsclass3.eof
%>
subval3 [<%= count3%>] = newArray ( '<%= rsclass3 ( "aaid")%>', '<%= rsclass3 ( "id")%>', '<%= rsclass3 ( "name")%>').
<%
count3 = count3+1
rsclass3.movenext
고리
rsclass3.close
%>
functionchangeselect1 (locationId)
{
document.form1.s2.length = 0;
document.form1.s2.options [0] = newOption ( '== 범주 ==', '');
document.form1.s3.length = 0;
document.form1.s3.options [0] = newOption ( '== 주제 ==', '');
for (i = 0; i <subval2.length; i ++)
{
if (subval2 [i] [0] == locationid)