셀렉트박스 selected 옵션 추가

셀렉트박스 selected 옵션 추가

QA

셀렉트박스 selected 옵션 추가

답변 1

본문

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

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

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

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


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

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


<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

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

다른 부분 참고해서


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

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 59
© SIRSOFT
현재 페이지 제일 처음으로