여분필드를 체크박스로 사용할 때 배열로 처리하는 방법
체크박스를 사용할 때 필드 값을 배열로 처리하는 방법입니다.
이전 여분 필드 강좌에서는 배열 처리 후 각각 다른 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"' : '' ?>> 여행
글자만 출력될 때와 체크박스 모양 그대로 출력될 때의 결과 화면
3. list 페이지 : list.skin.php
체크한 값만 저장되기 때문에 이렇게 직접 출력해도 됩니다.
<?php echo $list[$i]['wr_1'] ?>
<?php echo $list[$i]['wr_2'] ?>
- 여분필드를 활용한 게시판 스킨 제작 - 기본적인 사용 방법
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-1 (글쓰기 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-2 (목록 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-3 (글읽기 페이지)
- 여분필드에 스마트 에디터 사용하기
- 게시판 설정에 있는 여분 필드란 무엇인가?
- 여분필드를 활용한 게시판 스킨 제작 - 여분 필드 10개 이상 사용하기
- 10개 이상의 여분필드를 사용할 때 게시판 생성 단계에서부터 추가하기
- 여분필드를 활용한 게시판 스킨 제작 - 댓글 쓰기 페이지에 적용하는 방법
- 게시판 설정에 있는 여분 필드 사용 예제
- 여분필드 사용 시 배열을 사용해서 체크박스 항목 만드는 방법
- 여분필드를 체크박스로 사용할 때 배열로 처리하는 방법