여분필드를 체크박스로 사용할 때 배열로 처리하는 방법 - 게시판스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

게시판스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

여분필드를 체크박스로 사용할 때 배열로 처리하는 방법

관리자 19-03-09 14:12

체크박스를 사용할 때 필드 값을 배열로 처리하는 방법입니다.

이전 여분 필드 강좌에서는 배열 처리 후 각각 다른 name으로 재 지정했었는데 이번 방법은 차이가 있습니다.

좀 더 단순해졌고 선택하지 않은 값은 구분 기호가 생략돼서 출력할 때 별도 처리를 안 해도 됩니다.

이 방법보다 더 간편하게 줄일 수도 있는데 여러 방법을 올리는 중입니다.

참고해서 목적에 맞게 원하는 방식으로 사용하세요.


예제는 구분 기호로 콤마( , )를 사용했으며 이 값이 value 값에 포함되면 안 됩니다.


value 값은 이 부분을 말합니다.
value="사과"<?php echo in_array("사과", $check1) ? ' checked="checked"' : '' ?>>
예를 들어 "사과,복숭아" 이런 식으로 값에 쉼표를 추가하면 안 됩니다.

value 값에 콤마를 넣어야 한다면 반드시 다른 구분 기호로 변경해야 합니다.

근데 다른 기호로 변경했다면 출력 부분에서 별도의 수정이 필요할 수도 있습니다.



1. write 페이지 : write.skin.php


<?php
$check1 = explode(",", $write['wr_1']);
$check2 = explode(",", $write['wr_2']);
?>
과일 :
<input type="checkbox" name="check1[]" value="사과"<?php echo in_array("사과", $check1) ? ' checked="checked"' : '' ?>> 사과
<input type="checkbox" name="check1[]" value="수박"<?php echo in_array("수박", $check1) ? ' checked="checked"' : '' ?>> 수박
<input type="checkbox" name="check1[]" value="딸기"<?php echo in_array("딸기", $check1) ? ' checked="checked"' : '' ?>> 딸기
<input type="checkbox" name="check1[]" value="포도"<?php echo in_array("포도", $check1) ? ' checked="checked"' : '' ?>> 포도
<input type="checkbox" name="check1[]" value="참외"<?php echo in_array("참외", $check1) ? ' checked="checked"' : '' ?>> 참외
<br>
취미 :
<input type="checkbox" name="check2[]" value="낚시"<?php echo in_array("낚시", $check2) ? ' checked="checked"' : '' ?>> 낚시
<input type="checkbox" name="check2[]" value="등산"<?php echo in_array("등산", $check2) ? ' checked="checked"' : '' ?>> 등산
<input type="checkbox" name="check2[]" value="사진"<?php echo in_array("사진", $check2) ? ' checked="checked"' : '' ?>> 사진
<input type="checkbox" name="check2[]" value="여행"<?php echo in_array("여행", $check2) ? ' checked="checked"' : '' ?>> 여행



1-1. 파일 추가 : write_update.head.skin.php


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$wr_1 = implode(',', $_POST['check1']);
$wr_2 = implode(',', $_POST['check2']);
?>
 


2. view 페이지 : view.skin.php


2-1. 선택한 값의 글자만 출력.

과일 : <?php echo $view['wr_1']; ?><br>
취미 : <?php echo $view['wr_2']; ?>


2-2. 체크박스 모양 그대로 출력.

<?php
$check1 = explode(",", $view['wr_1']);
$check2 = explode(",", $view['wr_2']);
?>
과일 :
<input type="checkbox" name="check1[]" value="사과"<?php echo in_array("사과", $check1) ? ' checked="checked"' : '' ?>> 사과
<input type="checkbox" name="check1[]" value="수박"<?php echo in_array("수박", $check1) ? ' checked="checked"' : '' ?>> 수박
<input type="checkbox" name="check1[]" value="딸기"<?php echo in_array("딸기", $check1) ? ' checked="checked"' : '' ?>> 딸기
<input type="checkbox" name="check1[]" value="포도"<?php echo in_array("포도", $check1) ? ' checked="checked"' : '' ?>> 포도
<input type="checkbox" name="check1[]" value="참외"<?php echo in_array("참외", $check1) ? ' checked="checked"' : '' ?>> 참외
<br>
취미 :
<input type="checkbox" name="check2[]" value="낚시"<?php echo in_array("낚시", $check2) ? ' checked="checked"' : '' ?>> 낚시
<input type="checkbox" name="check2[]" value="등산"<?php echo in_array("등산", $check2) ? ' checked="checked"' : '' ?>> 등산
<input type="checkbox" name="check2[]" value="사진"<?php echo in_array("사진", $check2) ? ' checked="checked"' : '' ?>> 사진
<input type="checkbox" name="check2[]" value="여행"<?php echo in_array("여행", $check2) ? ' checked="checked"' : '' ?>> 여행



글자만 출력될 때와 체크박스 모양 그대로 출력될 때의 결과 화면

4a2e27299dd8e624908c1dfb83d241ef_1552108947_0139.gif 



3. list 페이지 : list.skin.php


체크한 값만 저장되기 때문에 이렇게 직접 출력해도 됩니다.


<?php echo $list[$i]['wr_1'] ?>

<?php echo $list[$i]['wr_2'] ?>

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.