저는 B형이고 영상을 활용해 문제를 해결하는 방법을 모르기 때문에 헷갈리는 단어를 사용해서 글을 써야 합니다.
일반적인 상황에서는 이 상황이 보조 디렉토리에 유용합니다. 현재 웹사이트에는 다양한 종류의 JS가 돌고 있지만, 그것들은 모두 저와 같은 사람들을 혼란스럽게 만드는 JS 코드에 지나지 않습니다. . 한꺼번에... 한꺼번에 배열합니다.
더 이상 고민하지 않고 요점을 살펴보겠습니다.
먼저 테이블을 생성해야 합니다. 물론 테이블에 디렉터리가 이미 생성되어 있는 경우에는 이 단계를 생략할 수 있습니다. 하지만 한 가지 상기시켜 주어야 할 점이 있습니다. 이 표는 제 예의 기초입니다(이게 맞는지 모르겠습니다).
내가 사용하는 테이블은 ACCESS이므로 테이블을 생성하지 않고 이 두 테이블의 해당 필드 이름만 나열하겠습니다(데이터베이스 이름: db.mdb).
테이블 이름: type_tree - 상위 클래스 필드: type_id(자동 번호) type_name(카테고리 이름)
테이블 이름: s_type - 하위 클래스 필드: id(자동 번호) s_name(하위 카테고리 이름) type_id(상위 클래스 ID) - 및 상위 클래스에 해당 테이블에서
이제 데이터베이스 연결이 설정되었습니다.
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server .mappath("db.mdb")Conn.Open connStr
위의 코드는 모두 일반적으로 사용되는 코드이므로 설명할 필요가 없습니다. .
이제 실제 액션에 들어갑니다 :)
보조 컨텍스트 메뉴는 일반적으로 드롭다운 메뉴로 만드는데, 나도 예외는 아니고 드롭다운 메뉴를 이용해서 만들기도 한다.
하지만 여기서는 한 가지 다른 점이 있습니다.
점프 메뉴를 사용하는 것은 매우 중요합니다. 성공 여부는 전적으로 메뉴를 올바르게 사용하는지에 달려 있습니다.
아래는 이 점프 메뉴에 대한 코드입니다!
<select name="first" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "[type_tree]에서 [type_id],[type_name] 선택"
set rs = conn.execute(sql)'부모 클래스의 ID와 이름을 가져옵니다.
rs.eof 또는 rs.bof인 경우
response.write "<option>------</option>" '기록이 없으면 -----를 표시합니다.
또 다른
while not(rs.eof 또는 rs.bof) '기록이 있으면 상위 이름을 나열하여 드롭다운을 만듭니다.
response.write ("<옵션 값='?sec=" & rs(0) & "'")
cstr(rs(0)) = request.querystring("sec")이면
response.write "선택됨"
종료하면
response.write (">" & rs(1) & "</option>")
rs.movenext
향하게 하다
rs.movefirst '나중에 사용할 수 있도록 커서를 첫 번째 항목으로 이동합니다.
종료하면
%>
</select>
아, 그런데 제가 올리는 것을 잊어버린 또 다른 코드가 있습니다. 이것이 메뉴로 이동하는 열쇠입니다.
추가하려면 추가하세요:
<스크립트 언어="자바스크립트" 유형="텍스트/자바스크립트">
<!--
함수 MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if(복원) selObj.selectedIndex=0;
}
//-->
</script>
위 코드는 <head>에 붙여넣어 DW에서 생성한 것인데 무슨 뜻인지 잘 이해가 안 되서 주석 처리는 하지 않겠습니다. :D
이제 메뉴의 보조 부분입니다. 이는 점프 메뉴가 아니라 단순한 목록이므로 위 코드와 점프 메뉴의 유일한 차이점은 onchange 기능입니다.
다음은 이 메뉴의 코드입니다. 위의 것보다 루프와 판단이 더 복잡하기 때문에 모두가 명확하게 읽어야 합니다.
<이름 선택="두번째">
<%if rs.eof 또는 rs.bof then
response.write ("<옵션>---------</옵션>")
또 다른
if request.querystring("sec") = "" then '점프 후 초 값을 가져옵니다.
temp=rs(0) 비어 있으면 temp 값을 첫 번째 레코드의 값으로 설정합니다.
또 다른
temp = request.querystring("sec") '그렇지 않으면 수신된 값이 됩니다.
종료하면
subsql = "[s_type]에서 [s_name]을 선택합니다. 여기서 type_id='"&temp&"'"
set subrs = conn.execute(subsql) '데이터가 임시인 모든 레코드 나열
subrs.eof 또는 subrs.bof인 경우
response.write ("<옵션>------</옵션>")
'기록이 없으면 이 목록에 "----"를 표시합니다.
또 다른
while not(subrs.eof 또는 subrs.bof)' 그렇지 않으면 루프를 사용하여 조건을 충족하는 모든 레코드를 나열합니다.
response.write ("<옵션 값=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
향하게 하다
종료하면
end if
'모든 레코드 세트 닫기
하위.닫기
하위 설정 = 아무것도 없음
RS.닫기
설정자=아무것도 없음
연결 닫기
conn = 아무것도 설정하지 않음
%>
</select>
지금까지 설명드린 대로 보조 메뉴 생성 과정은 매우 간단합니다.
이해가 안 되면 그만 얘기하세요. 어쨌든, 더 이상 무슨 말을 해야 할지 모르겠습니다.
전문가들이 기꺼이 조언을 해줄 것입니다.