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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
(재재재질문) 수정시 셀렉트가 초기화 됩니다.

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>

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

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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