분류를 사용을 체크하고 분류를 사용중인데 이걸 체크박스로 다중 선택

분류를 사용을 체크하고 분류를 사용중인데 이걸 체크박스로 다중 선택

QA

분류를 사용을 체크하고 분류를 사용중인데 이걸 체크박스로 다중 선택

본문

분류를 사용을 체크하고 분류를 사용중인데 이걸 체크박스로 다중 선택이 가능하도록 하려고 하고 있습니다.

 

https://sir.kr/g4_tiptech/26035

 

이부분을 참고하여 체크박스로 변경은 완료됬으나, 선택을 하더라도 분류를 선택하세요 라는 알림창이 뜨는 상태입니다.

 

write.skin.php 는 이렇게 작성하였습니다.


<?php if ($is_category) { ?>
                    <li class="divmb-10">
                        <!--<select name="ca_name" id="ca_name" required class="select_w w40">
                            <option value="">분류를 선택하세요</option>
                            <?php echo $category_option ?>
                        </select>-->
                        
                        <tr>
    <td class=write_head>사이트 분류</td>
    <td>
    <?
    $arr=explode("|",$board['bo_category_list']);
    foreach($arr as $str) { ?>
        <input type=checkbox name=chk_ca_name[] value='<?=$str?>'    ><?=$str?>
    <? } ?>
    <script>
        var f = document.fwrite;
        var str=",<?=$write[ca_name]?>,";
        for (var i=0; i<f.length; i++) {
            if (f.elements[i].name == "chk_ca_name[]") {
                if (str.indexOf(','+f.elements[i].value+',')>=0) {
                    f.elements[i].checked = true;
                }
            }
        }
    </script>
    </td></tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
                   
                   
                    </li>
                    <?php } ?>

 

write_update.head.skin.php파일은 보이지 않아, write.skin.php가 있는 같은 폴더 안에 새로 만들어 이렇게 넣었습니다.

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

$ca_name='';
foreach($_POST['chk_ca_name'] as $var) {
    $ca_name.=",$var";
}
if (strlen($ca_name)) $ca_name=substr($ca_name,1);
?>

 

문제점이 크게 없어보이는데 무엇이 문제일까요...?

 

bbs/write_update.php 에서는 @include_once($board_skin_path.'/write_update.head.skin.php');

 

이렇게 잘  불러오는 코드가 넣어져있습니다 ㅠ

 

이 질문에 댓글 쓰기 :

답변 2

<?php echo $category_option ?> 이부분을없애보세요. 

그리고 

 

if (strlen($ca_name)) $ca_name=substr($ca_name,1);
이걸 
if (strlen($ca_name)) $_POST['ca_name'] =substr($ca_name,1);

이렇게 해보시구요.

bbs/write_update.php 에서
    if(!$ca_name) {
        $msg[] = '<strong>분류</strong>를 선택하세요.';
    } else {
        $categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));
        if(!empty($categories) && !in_array($ca_name, $categories))
            $msg[] = '분류를 올바르게 입력하세요.';

        if(empty($categories))
            $ca_name = '';
    }
지워보시고 값이 잘들어가나 확인해보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 359
QA 내용 검색

회원로그인

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