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

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

QA

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

답변 2

본문

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

 

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 = '';
    }
지워보시고 값이 잘들어가나 확인해보세요.

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