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

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

 

https://sir.kr/g4_tiptech/26035

 

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

 

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

Copy
<?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가 있는 같은 폴더 안에 새로 만들어 이렇게 넣었습니다.

 

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

채택된 답변
+20 포인트
<?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);

이렇게 해보시구요.

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

답변에 대한 댓글 5개

그래도 해결이 되지 않아서요 ㅠㅠ
if (strlen($ca_name)) $ca_name=substr($ca_name,1); 이걸
if (strlen($ca_name)) $_POST['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 = '';
}
지워보시고 값이 잘들어가나 확인해보세요.
지워서 확인해보았을땐 값이 잘 들어가지긴합니다

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

그누보드5에서는 bbs/write_update.php 파일도 수정하셔야 합니다.

개선된 팁이 있네요.

https://sir.kr/g5_tip/12256

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

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

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

로그인
🐛 버그신고