셀렉트박스 selected 옵션 추가 채택완료

DB 테이블에서 불러와서 셀렉트박스에 옵션 추가하는 항목을 반복문을 사용하여 

구현하여 사용하고 있습니다.

이 구문에 selected 하여 현재 선택되어있는 여분필드를 표시하고 싶습니다

어떻게 selected 구문을 추가할 수 있을까요?

Copy
<?php $sql = " select * from g5_part ";

$res = sql_query($sql);

for ($i=0; $row = sql_fetch_array($res); $i++) {

      $nm[$i] = $row['company'].'|1|'.$row['part'].'|2|'.$row['team'].'|3|';  

} ?>

<script type="text/javascript">

function initCataID(cmd){

cmd = eval(cmd);

if(cmd == 1){

   mb_2.length = 1;

   mb_3.length = 1;

   mb_2.selectedIndex = 0;

   mb_3.selectedIndex = 0;

}

f(cmd == 2){

   mb_3.length = 1;

   mb_3.selectedIndex = 0;

}

}

</script>

<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 ){         

       mb_1.length =  mb_1.length + 1;

       mb_1.options[z1+1].value = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;

       mb_1.options[z1+1].text = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;

       temp1 = menuArr[m].substring(0, menuArr[m].indexOf("|1|"));

       z1++;

    }

                    /*  index 1에 중복 제거입니다.  */

}

</script>

이 부분을 조금 만지면 추가가 될 것 같은데 도저히 감이 안 잡히니 .. 도움을 요청합니다!

Copy
<td>

<select name = 'mb_1' id='mb_1' OnChange='javascript:getCataAllId(1)' class="select1">

  <option value="<?=$mb['mb_1']?>" <?= $mb['mb_1']==$row['company'] ?'selected' : ''?>><?= $mb['mb_1'] ?  $mb['mb_1'] : '회사 선택'  ?></option>

</select>

</td>

</tr>

 <tr>

   <th scope="row"><label for="mb_2">부 구분</label></th>

<td>

<select name = 'mb_2' id='mb_2' OnChange='javascript:getCataAllId(2)' class="select2">

<option value="<?=$mb['mb_2']?>" <?= $mb['mb_2']==$row['part'] ?'selected' : ''?>>부서 선택</option>

   </select>

</td>

<th scope="row"><label for="mb_3">팀 구분</label></th>

<td>

<select name = 'mb_3' id='mb_3' class="select3">

<option value='$mb["mb_3"]' selected>팀 선택</option>

</select>

</td>

표시해주는 부분은 테스트를 위해 세 항목 다 다르게 해두었습니다

 

관련한 전 코드는

https://sir.kr/qa/471889?sfl=mb_id%2C1&lstx=bossxor에 올려두었습니다. 

option추가할때 selected항목을 어떻게 추가할지 모르겠습니다..

답변 1개

채택된 답변
+20 포인트

전체적인 구성이 어떻게 돼있는지는 모르겠으나

다른 부분 참고해서

Copy
<select name = 'mb_3' id='mb_3' OnChange='javascript:getCataAllId(3)' class="select3">
  <option value="<?=$mb['mb_3']?>" <?=$mb['mb_3']==$row['team'] ? 'selected' : ''?>><?=<?=$mb['mb_3'] ? <?=$mb['mb_3']?> : '팀 선택' ?></option>
</select>

이런형태가 되지 않을까 싶네요

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

답변에 대한 댓글 1개

댓글 감사합니다 ㅠ
제 설명이 조금 부족했던 것 같습니다

올려주신 대로 작성하면 맨 위에 현재값이 표시가 되는건 맞는데 ,
반복문으로 option값을 만들어 줄때에 mb_1,2,3에 각각 있는값이 선택되어 나왔으면 좋겠습니다.

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

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

로그인
🐛 버그신고