인터넷정보

다중 셀렉트(select) 박스 3

알 수 없는 사용자 2007. 10. 18. 13:42
  1. <FORM name='ff2' METHOD=POST ACTION="">
  2. <SELECT NAME="ss1" size=1 onChange='init_list("ff2","ss1","ss2","ss3",1)'>
  3.     <option value='0'>대분류</option>
  4. </SELECT>
  5. <SELECT NAME="ss2" size=1 onChange='init_list("ff2","ss1","ss2","ss3",2)'>
  6.     <option >중분류</option>
  7. </SELECT>
  8. <SELECT NAME="ss3" size=1>
  9.     <option >소분류</option>
  10. </SELECT>
  11. </FORM>
  12. <SCRIPT LANGUAGE="JavaScript">
  13. <!--
  14. /////////////////////////////// 대분류 배열
  15. //    Ccode = new Array();
  16. //    Cname = new Array();
  17.     Ccode = ["0","11","12"]
  18.     Cname = ["대분류","비지니스/경제","컴퓨터/인터넷"]
  19. ////////////////////////////// 중분류 배열    
  20.     Ccode11 = ["0","1111","1112","1113"]
  21.     Cname11 = ["중분류","경제1","경제2","경제3"]
  22.     Cflag11 = ["0","0","1","1"]
  23.     Ccode12 = ["0","1211","1212","1213"]
  24.     Cname12 = ["중분류","운영체제","컴퓨터활용","소프트웨어"]
  25. ///////////////////////////// 소분류 배열
  26.     Ccode1111 = ["0","111111","111112","111113"]
  27.     Cname1111 = ["소분류","경제소1","경제소2","경제소3"]
  28.     Ccode1112 = ["0","111111","111112","111113"]
  29.     Cname1112 = ["소분류","경제소221","경제소222","경제소223"]
  30.     Ccode1211 = ["0","111111","111112","111113"]
  31.     Cname1211 = ["소분류","윈도우소1","리눅스소2","유닉스소3"]
  32.     Ccode1212 = ["0","111111","111112","111113"]
  33.     Cname1212 = ["소분류","윈도우소2221","리눅스소2222","유닉스2223"]
  34. //////////////////////////////////////////////
  35. // ff - 폼이름
  36. // ss1 - 대분류 셀렉트박스 이름
  37. // ss2 - 중분류 셀렉트박스 이름
  38. // ss3 - 소분류 셀렉트박스 이름
  39. // gubun - 대분류에서 온 값인지 소분류에서 온 값인지 여부
  40. ////////////////////////////////////////////////
  41. function init_list(Pform,Pss1,Pss2,Pss3,gubun) {
  42. FS1 = eval(Pform + "." + Pss1)
  43. FS2 = eval(Pform + "." + Pss2)
  44. FS3 = eval(Pform + "." + Pss3)
  45. switch(gubun) {
  46.     case 1 :
  47. // 대분류값이 변하였을 경우
  48.      if(FS1.options[FS1.selectedIndex].value != 0 ) {
  49.         MCcode = eval( "Ccode" + FS1.options[FS1.selectedIndex].value )
  50.         MCname = eval( "Cname" + FS1.options[FS1.selectedIndex].value )
  51.         FS2.options.length = Ccode.length
  52.         for(i=0 ; i < Ccode.length ; i++) {
  53.          FS2.options[i].value = MCcode[i]
  54.          FS2.options[i].text = MCname[i]
  55.         }
  56.      } else {
  57.          FS2.options.length = 1
  58.          FS2.options[0].value = "0"
  59.          FS2.options[0].text = "중분류"
  60.      }
  61.      break ;
  62.     case 2 :
  63. // 중분류값이 변하였을 경우
  64.      if(FS2.options[FS2.selectedIndex].value != 0 ) {
  65.         SCcode = eval( "Ccode" + FS2.options[FS2.selectedIndex].value )
  66.         SCname = eval( "Cname" + FS2.options[FS2.selectedIndex].value )
  67.         FS3.options.length = Ccode.length
  68.         for(i=0 ; i < Ccode.length ; i++) {
  69.          FS3.options[i].value = SCcode[i]
  70.          FS3.options[i].text = SCname[i]
  71.         }
  72.      } else {
  73.          FS3.options.length = 1
  74.          FS3.options[0].value = "0"
  75.          FS3.options[0].text = "소분류"        
  76.      }
  77.      break ;
  78.     default :
  79. // 초기화 기본값
  80.          FS1.options.length = Ccode.length
  81.          for(i=0 ; i < Ccode.length ; i++) {
  82.             FS1.options[i].value = Ccode[i]
  83.             FS1.options[i].text = Cname[i]
  84.          }
  85.      break ;
  86.     }
  87. }
  88. init_list("ff2","ss1","ss2","ss3",0) ;
  89. //-->
  90. </SCRIPT>
반응형