채택완료

selectbox 기본선택 질문

2018-05-24 (목) 17:48:33 1,944

현재 슈와이 님이 올리신

https://sir.kr/g5_tip/6813

이 팁을 이용하여 , 게시판에 여분필드값을 추가하여

셀렉트박스를 이용중인데요.

write.php

인증현황 :  <input type="text" name="wr_6" id="wr_6" value="<?php echo $wr_6 ?>">
</div>
<script src="/js/makebox.js"></script>
 <script>
 $( '#wr_6' ).makeBox('인증대기중,인증완료,인증불가', 'select');
</script>

이런식으로 선택하여 인증현황을 바꿔주는 형식으로 구성 하였습니다.

이 소스를 이용할경우 기본 선택값을 '인증대기중'으로 하고 싶은데

현재 제일 상위에 '인증대기중'이 되어 있지만 실제로 '선택'이 되어 있지는 않습니다.

처음에 선택을 하지 않아도 기본 선택을 '인증대기중'으로 하고 싶은데요.

혹시 팁을 좀 주실분 계실까요.

아래는 해당 소스의 제이쿼리 입니다.

$.fn.makeBox = function (text, type) {
    var  html = '', arr = text.split(','), i, checked, id = $(this).attr( 'id' ), val = $(this).val(), id_1, obj = $( '#' + id ); 
    $( obj ).prop('type', 'hidden');
    if (type == 'select') {    
        id_1 = id + '_1';
        html = '<select id="' + id_1 +'">';
        for (i in arr) {        
            checked = val.indexOf(arr[i]) + 1 ? 'selected' : '';
            html += '<option value="' + arr[i] + '" ' + checked + '>' + arr[i] + '</option>';
        }
        html += '</select>';
        $( 'body' ).on('change', '#' + id_1, function() {            
            $( '#' + id ).val( this.value ); 
        });
    } else {    
         for (i in arr) {        
            checked = val.indexOf(arr[i]) + 1 ? ' checked' : '';
            id_1 = id  + '_' + i;
            html += '<input type="' + type + '" name="' + id + '_1' + '" id="' + id_1 +'" value="' + arr[i] + '"' + checked + ' class="' + id + '">';
            html += '<label for="' + id_1 + '">' + arr[i] + '</label>&nbsp;';
         } 
        $( 'body' ).on( 'click', '.' + id, function() {
            var ar = [];
            $( '.' + id ).each( function() {
                if (this.checked) ar.push(this.value); 
            });
            obj.val( ar.join(',') ); 
        });
     }
    $( '#' + id ).after(html); 
}

답변 1개 / 댓글 2개

채택된 답변
+20 포인트
2018-05-24 (목) 18:17:54

인증현황 :  <input type="text" name="wr_6" id="wr_6" value="<?php echo $wr_6 ?>">

->

인증현황 :  <input type="text" name="wr_6" id="wr_6" value="<?php echo $wr_6 ? $wr_6 : '인증대기중' ?>">

으로 변경해 보시면 어떨까 합니다.

답변에 대한 댓글 2개

2018-05-24 (목) 18:22:34
적용 해보았지만, 기본 값으로 뜨진 않네요 ^^; 답변 감사드립니다...
2018-05-24 (목) 22:20:32
시간이 나서.. 잠깐 테스트를 해보니..

제 환경에서는..

<input type="text" name="wr_6" id="wr_6" value="인증완료"> 로 하면.. 인증완료가 선택된 것으로
<input type="text" name="wr_6" id="wr_6" value="인증대기중"> 으로 하면.. 인증대기중이 선택된 것으로 (selected) 확인되었습니다. (크롬 개발자 도구)

인증현황 : <input type="text" name="wr_6" id="wr_6" value="<?php echo $wr_6 ? $wr_6 : '인증대기중' ?>">
소스도. 제 환경에서는 제가 생각한 대로 .. 적용이 되었는데..
(이 소스는 내용 수정 페이지의 경우에는, db 에 저장된 wr_6 값이 우선합니다.)

다른 문제가 있거나.. 혹은 제가 파악하지 있는부분이 있는지는 모르겠지만..
참고가 될까 싶어 다시 남깁니다.

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