수정시 셀렉트가 초기화 됩니다.

수정시 셀렉트가 초기화 됩니다.

QA

수정시 셀렉트가 초기화 됩니다.

본문


 
<?php
 $write['wr_1'] = $menu1;
?>
 <select name='wr_1' id='menu1' OnChange='javascript:getCataAllId(1)' required class="form-select">
       <option value='<?=$write['wr_1']?>' <?=($write['wr_1']=='' )? 'selected':'';?>> 선택하세요 </option>
 </select>


입력하고 저장하면, DB에 저장은 잘 되는데, 수정 하려면 초기화 됩니다.

아무리 봐도 이상이 없는듯 한데... 어디가 잘못됐는지...ㅠㅠ

도와주세요.. 고수님..

이 질문에 댓글 쓰기 :

답변 2

다른 option 태그는 없는건가요?

 

위 코드만으로 봤을 때는 중간에 if문이 빠진 것 밖에 안보입니다.

 



<?php
 $write['wr_1'] = $menu1;
?>
 <select name='wr_1' id='menu1' OnChange='javascript:getCataAllId(1)' required class="form-select">
       <option value='<?=$write['wr_1']?>' <?php if($write['wr_1'] == '' )? 'selected':'';?>> 선택하세요 </option>
 </select>


다른 옵션 부분이 javascript 로 채워지는것 같은데 그부분을 확인하셔야 할것 같네요

보내주신 소스로는 정확히 파악이 어렵습니다.

다른 javascript 옵션은

OnChange='javascript:getCataAllId(1)' 이거인데요..

이 코드는 다른 테이블 불러와서 DB 연동한 다중 셀렉터 입니다.



<?php
$wr_1 = $menu1; $wr_2 = $menu2; $wr_subject = $menu3; $wr_4 = $menu4;    
    for ($i=0; $row = sql_fetch_array($result); $i++) {
      $nm[$i] = $row['wr_1'].'|1|'.$row['wr_2'].'|2|'.$row['wr_subject'].'|3|'.$row['wr_4'].'|4|';
?>


<script type="text/javascript">
 function getCataAllId(cmd){
  cmd = eval(cmd);
  cmd2 = cmd +1;
  initCataID(cmd);
  var ch = "";
  for(var idx = 1; idx < cmd2; idx++){
      ch = ch + eval("document.fwrite.menu"+idx+".value") + "|"+idx+"|";
  }
  var v = 0;
  var temp = "";
  var tempv = "";
  var arg = "";
  for(var m = 0; m < menuArr.length; m ++) {
      arg = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|")) ;
      temp = menuArr[m].substring(0, menuArr[m].indexOf("|"+cmd+"|")+3);
      if(temp == ch && tempv != arg ){
            v++;
            eval("document.fwrite.menu"+cmd2+".length = document.fwrite.menu"+cmd2+".length + 1");
            eval("document.fwrite.menu"+cmd2+".options["+v+"].value = arg ");
            eval("document.fwrite.menu"+cmd2+".options["+v+"].text  = arg ");
      }
      if(temp != ch){
          tempv = "";
      }else{
          tempv = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|"));
      } 
  }
}
 
 function initCataID(cmd){
 cmd = eval(cmd);
  if(cmd == 1){
      document.fwrite.menu2.length = 1;
      document.fwrite.menu3.length = 1;
      document.fwrite.menu4.length = 1;
      document.fwrite.menu2.selectedIndex = 0;
      document.fwrite.menu3.selectedIndex = 0;
      document.fwrite.menu4.selectedIndex = 0;
  }
  if(cmd == 2){
      document.fwrite.menu3.length = 1;
      document.fwrite.menu4.length = 1;
      document.fwrite.menu3.selectedIndex = 0;
      document.fwrite.menu4.selectedIndex = 0;
  }
   if(cmd == 3){
      document.fwrite.menu4.length = 1;
      document.fwrite.menu4.selectedIndex = 0;
  }
 }


</script>


<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" role="form" class="form">

 <select name='wr_1' id='menu1' OnChange='javascript:getCataAllId(1)' required class="form-select">
       <option value='<?=$write['wr_1']?>' <?php if($write['wr_1'] == '' )? 'selected':'';?>> 선택하세요 </option>
 </select>
.
.
.
.
.

</form>


<script type="text/javascript">
/* JSON encode, parse  */
var stuff = <?php echo json_encode($nm); ?>;
var str = JSON.stringify(stuff);
var menuArr = new Array();
    menuArr= JSON.parse(str);
var z1 = 0;
var temp1 = 0;
initCataID(1);
  for(var m = 0; m < menuArr.length; m ++) {
      if ( menuArr[m].substring(0, menuArr[m].indexOf("|1|")) != temp1 ){
          document.fwrite.menu1.length =  document.fwrite.menu1.length + 1;
          document.fwrite.menu1.options[z1+1].value = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
          document.fwrite.menu1.options[z1+1].text = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
          temp1 = menuArr[m].substring(0, menuArr[m].indexOf("|1|"));
          z1++;
      }
      /*  index 1에 중복 제거입니다.  */
  }



function gotomenu()
{
      location.href = '#';
}
</script>



이겁니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 14,899
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT