(재재재질문) 수정시 셀렉트가 초기화 됩니다.

(재재재질문) 수정시 셀렉트가 초기화 됩니다.

QA

(재재재질문) 수정시 셀렉트가 초기화 됩니다.

본문

4번째 재질문 입니다.(속 시원한 답변이 안나와서...ㅜㅜ;)

 

아래 내용은 다른 테이블 불러와서 DB 연동한 다중 셀렉터 입니다.

 

다른게시판의 테이블값을 가져와서 다중셀렉트로 구성하는 겁니다.

$menu1 의 셀렉트 값이 있으면 $menu2 의 셀렉트가 열리고,...최종  $menu4  까지 열리는데

$menu1 의 값에 따라 나머지도 바뀌죠.

 

입력하고 저장하면, 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">
   <input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
.
.
.
.
.
<?php
 $write['wr_1'] = $menu1;
 $write['wr_2'] = $menu2;
 $write['wr_subject'] = $menu3;
 $write['wr_4'] = $menu4;
?>
 <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>
.
.
.
.
.
<div class="write-btn">
  <button type="submit" id="btn_submit" accesskey="s" class="btn btn-send btn-lg"><b><?php echo $w == '' ? '결재하기':'수정하기' ?></b></button>
  <?php if($is_admin) { ?>
    <a href="./board.php?bo_table=<?php echo $bo_table ?>" class="btn btn-<?php echo $btn1;?> btn-send btn-lg" role="button">목록으로</a>
    <?php } ?>
</div>
<div class="clearfix"></div>
</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>

이 질문에 댓글 쓰기 :

답변 2

수정페이지로 진입시 변경펑션을 호출해주나요?

 

셀렉트 선택시 해당 펑션을 부를텐데

 

수정페이지 진입시엔 해당 펑션 호출하는지 확인이 안되네요 그럼 당연히 셀렉트값이 비어있겠죠

</script>

->

getCataAllId(1);
</script>

질문드리고, 어머니가 심장때문에 병원에 입원하셔서 이제서야 확인 합니다.
답을 주셨는데, 이해가 좀 안가서요...
어디에 넣어야 하는지..
다 대응을 해 보았으나 반응이 없습니다.
죄송하지만, 조금만 더 알려주세요... 죄송합니다. 마르스컴퍼니님..

답변을 작성하시기 전에 로그인 해주세요.
전체 88
QA 내용 검색

회원로그인

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