테스트 사이트 - 개발 중인 베타 버전입니다

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

qoqofh 4년 전 조회 1,456

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

 

https://sir.kr/g4_tiptech/26035

 

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

 

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

</p>

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

<p>    <?

    $arr=explode("|",$board['bo_category_list']);</p>

<p>    foreach($arr as $str) { ?>

        <input type=checkbox name=chk_ca_name[] value='<?=$str?>'    ><?=$str?>

    <? } ?></p>

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

<p>    </td></tr>

<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>

                   

                   

                    </li>

                    <?php } ?></p>

<p>

 

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

 

</p>

<p><?php

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

<p>

$ca_name='';

foreach($_POST['chk_ca_name'] as $var) {

    $ca_name.=",$var";

}

if (strlen($ca_name)) $ca_name=substr($ca_name,1);

?></p>

<p>

 

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

 

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

 

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

 

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

답변 2개

채택된 답변
+20 포인트
핑크빈
4년 전
 이부분을없애보세요. 

그리고 

 

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

이렇게 해보시구요.

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

답변에 대한 댓글 5개

q
qoqofh
4년 전
그래도 해결이 되지 않아서요 ㅠㅠ
P
Phillips
4년 전
if (strlen($ca_name)) $ca_name=substr($ca_name,1); 이걸
if (strlen($ca_name)) $_POST['ca_name'] =substr($ca_name,1);
이렇게해보실레요.
q
qoqofh
4년 전
if (strlen($ca_name)) $_POST['ca_name'] =substr($ca_name,1);

이부분도 확인했는데 해결이 되지 않네요 ㅠㅠ
P
Phillips
4년 전
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 = '';
}
지워보시고 값이 잘들어가나 확인해보세요.
q
qoqofh
4년 전
지워서 확인해보았을땐 값이 잘 들어가지긴합니다

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

4년 전

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

개선된 팁이 있네요.

https://sir.kr/g5_tip/12256

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

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

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

로그인