(재질문) 수정시 셀렉트가 초기화 됩니다. ㅜㅜ; 채택완료

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

 

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

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

 

 

Copy
<?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>

답변 1개

질문자가 모르듯이 답변자도 모르겠네요 게시판 인지 아니면 어디껀지.. 저거 자바스크립트만 봐도..

먼지 모르겠어요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

게시판입니다. 전체를 다 적어 넣기가 뭐해서 핵심만 넣어놨어요.

[code]
<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>
[/code]

문젠, 요 부분인것 같은데.. 문제가 없어 보이는데.. 안되네요..
어쨌든 뭔지를 잘 모르겠지만.. 의심되는부분이 있네요

셀렉트 박스 내부에 여기 소스 조건문 보면 비워 있습니다.


<?php if($write['wr_1'] == $wr_1 )? 'selected':'';?>

이렇게 해보세요 수정한 값이랑 같을경우 셀렉티드를 해보세요
저도 그 부분이 의심이 되는데요.. 잘 모르겠네요..ㅡㅡ;

좀 더 연구를 해볼께요.. 밤 늦게 답변 주셔서 고맙습니다.^^
채택해주세요~

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

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

로그인
🐛 버그신고