다중 체크박스 배열 값 받기 질문
본문
안녕하세요.
체크박스를 여러개 선택해서 전송시 배열로 값을 받으려고 했는데
잘 안되서 질문드려봅니다.
name이랑 $를 wr_4로 하면 array가 뜨고
name이랑 $를 check1으로 변경하면 값이 오긴하는데
게시판에 테이블 안쪽이 아닌 바깥쪽에 출력이 됩니다ㅠㅠ
그래서
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
이 부분의 내부에 check1을 직접 추가하려 했는데
어떻게 추가해야되는지 몰라서 못했습니다.
그리고 게시판만 사용할거라서
gnuboard/mobile/skin/board/(사용스킨)
루트로 연결하여 여기서만 거의 코딩을 수정했는데
다른데도 수정해야할까요?
인터넷으로 찾아서 거의 전부다 해봤는데 코드를 잘못쓴건지 뭔지 잘 안됐습니다
완전 초보자여서 며칠째 헤매고 있네요..
고수님들 도와주시면 감사하겠습니다!
(write.skin.php)
<tr>
<td class="name_wrap">
<label class="name_title" for="wr_4">전공/학원수강여부</label>
</td>
<td class="check_wrap1" colspan="4">
<?php $wr_4 = explode(",", $write['wr_4']); ?>
<input type="checkbox" name="wr_4[]" id="wr_4_1" value="전공"<?php echo in_array("전공", $wr_4) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_1" style="padding-inline: 10px;">전공</label>
<input type="checkbox" name="wr_4[]" id="wr_4_2" value="비전공"<?php echo in_array("비전공", $wr_4) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_2" style="padding-inline: 10px;">비전공</label>
<input type="checkbox" name="wr_4[]" id="wr_4_3" value="타학원수강"<?php echo in_array("타학원수강", $wr_4) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_3" style="padding-inline: 10px;">타학원수강</label>
</td>
</tr>
------------------
(write_update.skin.php)
$wr_4 = implode(',', $_POST['wr_4']);
sql_query("update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");
------------------
(view.skin.php)
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
<?php //echo $view['rich_content']; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>
<!--다중체크박스-->
<?php echo $view['wr_4']; ?>
<span class="bo_v_tit">
<!-- } 본문 내용 끝 -->
</section>
↓↓↓↓↓↓
check1으로 했을때
(write.skin.php)
<tr>
<td class="name_wrap">
<label class="name_title" for="wr_4">전공/학원수강여부</label>
</td>
<td class="check_wrap1" colspan="4">
<?php $check1 = explode(",", $write['wr_4']); ?>
<input type="checkbox" name="check1[]" id="wr_4_1" value="전공"<?php echo in_array("전공", $check1) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_1" style="padding-inline: 10px;">전공</label>
<input type="checkbox" name="check1[]" id="wr_4_2" value="비전공"<?php echo in_array("비전공", $check1) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_2" style="padding-inline: 10px;">비전공</label>
<input type="checkbox" name="check1[]" id="wr_4_3" value="타학원수강"<?php echo in_array("타학원수강", $check1) ? ' checked="checked"' : '' ?> class="required">
<label for="wr_4_3" style="padding-inline: 10px;">타학원수강</label>
</td>
</tr>
------------------
(write_update.skin.php)
$wr_4 = implode(',', $_POST['check1']);
sql_query("update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");
------------------
(view.skin.php)
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
<?php //echo $view['rich_content']; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>
<!--다중체크박스-->
<?php echo $view['wr_4']; ?>
<span class="bo_v_tit">
<!-- } 본문 내용 끝 -->
</section>
↓↓↓↓↓↓
코드 참고 출처 : https://eond.com/gnuboard/435215
답변 2
아래 check1 방법으로 해야 배열 넘길수 있고, 문제점은 아래 출력 내용이 칸이 안 맞는다는 문의 같으신데
<?php echo $view['wr_4']; ?> 이걸 감싸주는 레이아웃이 없습니다.
<td>전공/학원수강여부</td> 이렇게 있을것으로 예상이 되는데
그 옆에 <td><?php echo $view['wr_4']; ?></td>
이렇게 해주시면 되실겁니다.
write_update.skin.php 말고 write_update.head.skin.php 에 아래코드만 넣어보세요.
$wr_4 = implode(',', $_POST['wr_4']);
따로 sql_query로 업데이트 안하셔도 됩니다.