채택완료

다중셀렉트 박스 2차메뉴 유지하기 부탁드립니다ㅠㅠ

안녕하세요 ㅠㅠ 답답한 마음에 글 올려봅니다

Copy
function showSub(obj){
 f = document.forms.form1;
 if(obj == 1 ) { 
  f.service_type2.style.display = "";
  f.service_type3.style.display = "none";
 }else if(obj == 10) 
  f.service_type2.style.display = "none";
  f.service_type3.style.display = "";

 } else {
  f.service_type2.style.display = "none";
  f.service_type3.style.display = "none";
 }
}

// 이렇게 1, 10에 값을 선택하면 1,10에 해당하는 각 2차메뉴박스가 나오는데 그 조건을 그대로 검색하면 다시 1차메뉴의 1이값이 들어가있는상태인데도 불구하고 2차메뉴가 사라지는데 어떻게 해야할까요?

 

  <SELECT NAME="service_type" onChange="showSub(this.options[this.selectedIndex].value);">
   <OPTION VALUE="<?=$opt_service_type?>" SELECTED>- 선택 - </OPTION>
   <?=$opt_service_type?>
  </SELECT>
  <SELECT NAME="service_type2" style="display:none;">
   <OPTION VALUE="" SELECTED>- 선택 - </OPTION>
   <?=$opt_service_type2?>
  </SELECT>
  <SELECT NAME="service_type3" style="display:none;">
   <OPTION VALUE="" SELECTED>- 선택 - </OPTION>
   <?=$opt_service_type3?>
  </SELECT>

이렇게 1, 10에 값을 선택하면 1,10에 해당하는 각 2차메뉴박스가 나오는데 그 조건을 그대로 검색하면 다시 1차메뉴의 1이값이 들어가있는상태인데도 불구하고 2차메뉴가 사라지는데 어떻게 해야할까요?

|

답변 2개

채택된 답변
+20 포인트

스트립트 }else if(obj == 10)  부분에 { 누락되었네요...

Copy
function showSub(obj){
 f = document.forms.form1;
 if(obj == 1 ) { 
  f.service_type2.style.display = "";
  f.service_type3.style.display = "none";
 }else if(obj == 10){
  f.service_type2.style.display = "none";
  f.service_type3.style.display = "";
 } else {
  f.service_type2.style.display = "none";
  f.service_type3.style.display = "none";
 }
}

해당 스크립트 showSub() 는 onchange로 되어있습니다.

때문에 검색시 검색한 값이 있을경우 showSub()를 실행하는 스크립트 구문이 필요합니다.

ex)

Copy
<?php if($_POST['service_type']){?>
window.onload = function () {
    showSub(<?php echo $_POST['service_type']?>); // $_POST['service_type'] 는 검색값
}
<?php } ?>

이렇게 하시면 검색시 해당 showSub() 스크립트를 실행하게 됩니다.

그냥 showSub걸 홈페이지가 열린때에 한번 더 호출하세요

답변을 작성하려면 로그인이 필요합니다.