자바스크립트 동적 셀렉트박스 > script

본문 바로가기
사이트 내 전체검색

script

자바스크립트 동적 셀렉트박스

페이지 정보

작성자 서방님 댓글 1건 조회 97회 작성일 07-07-31 18:45

본문

<%'DB 연결%>

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE><%=strTopTitle%></TITLE>
<meta http-equiv=Cache-Control content=No-Cache>
<meta http-equiv=Pragma content=No-Cache>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="HyungE">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<LINK href="<%=strWebURL%>/include/default.css" type=text/css rel=stylesheet>
</Head>
</Body>
<form name ="productinfo">
 <font size = 2 color = "red"><strong>이벤트 선택</strong></font> :
 <select name="cate1" onChange="javascript:selectcate2(this.value)">
   <option value="" selected>이벤트 선택</option>
<%
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 이벤트 카테고리는 그냥 단순하게 쿼리문을 이용해 뿌려줌

 set oRec = Server.CreateObject("ADODB.Recordset")
 strSQL = ""
 strSQL = "select EICode, EIName, case when EISatus = 9 then '진행' when EISatus = 2 then '예정' when EISatus = 0 then '지난' else '기타' + convert(varchar(11), EISatus) end from EventInfos order by EISatus desc, EICode desc"
 oRec.Open strSQL, oCon, 3, 1

  DO While Not oRec.EOF
   leng = Len(oRec(1))
   If Clng(leng) < 9 Then
    title = Mid(oRec(1),1,8)
    Etitle = title
   Else
    title = Mid(oRec(1),1,13)
    Etitle = title & "..."
   End If
   state = "(" & oRec(2) & ")"
   Eventtitle = state & Etitle

   EIcode = oRec(0)
   Response.Write "<option value='"&EIcode&"'>"&Eventtitle&"</option>"
   oRec.MoveNext
  loop
 set oRec = Nothing
%>
 </select><br>

 <font size = 2 color = "red"><strong>이벤트서브 선택</strong></font> :
     <select id="cate_2" name="cate2">
      <option value="" selected>이벤트서브 선택</option>
     </select>
<%
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' 일단 모든 2차 카테고리의 갯수와 정보를 가져옴.

 set oRec = Server.CreateObject("ADODB.Recordset")
 strSQL = ""
 strSQL = "select count(ESCode) from EventSub"
 oRec.Open strSQL, oCon, 3, 1
 cnt = oRec(0)
 set oRec = Nothing

 set oRec = Server.CreateObject("ADODB.Recordset")
 strSQL = ""
 strSQL = "select ESCode, ESName, ESEICode from EventSub order by ESCode desc"
 oRec.Open strSQL, oCon, 3, 1
 folder = oRec.GetRows

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 위에서 뽑아온 레코드셋을 2차원배열로 바꾼 다음에...   '
    ' 아래의 룹을 이용해 자바스크립트의 2차원 배열선언 형식으로 '
    ' 스트링변수에 집어 넣음.          '
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 strfolder = "folder = new Array()" & chr(13) & chr(9)

 for i=0 to cnt - 1
  strfolder = strfolder & "folder["&i&"] = new Array()" & chr(13) & chr(9)
  strfolder = strfolder & "folder["&i&"][0] = '"&folder(0,i)&"';"
  strfolder = strfolder & "folder["&i&"][1] = '"&folder(1,i)&"';"
  strfolder = strfolder & "folder["&i&"][2] = '"&folder(2,i)&"';" & chr(13) & chr(9)
 next
 set oRec = Nothing

%>
<script language=javascript>
 function selectcate2(value)
 {

  // 위에서 저장했던 2차카테고리의 갯수와 배열선언 스트링을 자바스크립트의 함수 안에서 뿌려줍니다.
  var cnt = <%=cnt%>;
  var a = 1;
  <%=strfolder%>

  // 함수가 호출되면 첫번째 for문에서 기존의 2차카테고리 부분의 옵션리스트를 모두 삭제하고
  // 두번째 for문에서 새로 바뀐 1차카테고리의 하위 2차카테고리를 집어 넣게 됩니다.
  len = document.productinfo.cate2.options.length;
  for(i=0; i < len; i++)
  {
   document.productinfo.cate2.options[1] = null;
  }
  for(i=0; i < cnt;i++)
  {

   if (value == folder[i][2])
   {
    document.productinfo.cate2.options[a++] = new Option(folder[i][1], folder[i][0]);
   }
  }

 }
</script>
</body>
</html>

출처 : 태오닷넷

손좀 봤다. 사실 오늘 하루 종일 걸려서 동적 셀렉트 박스란걸 드디어 해결함 ㅠㅠ

괜한 고집이었지. 큭큭

저 셀렉트 박스 2개는 리로드하지않고서

셀렉트 박스 1에 해당되는 카테고리 선택시 그하위값이 셀렉트 박스 2에서 자동으로 변하는 그런것이다.

 

역시 난감한 자바스크립트..

댓글목록

등록된 댓글이 없습니다.

Total 846건 42 페이지
게시물 검색

회원로그인

접속자집계

오늘
22
어제
302
최대
1,347
전체
155,083
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.