여분필드 사용 시 배열을 사용해서 체크박스 항목 만드는 방법 - 게시판스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

게시판스킨강좌

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

여분필드 사용 시 배열을 사용해서 체크박스 항목 만드는 방법

관리자 18-10-01 07:51

더 좋은 방법도 많겠지만 선택 항목을 그대로 나열해서 사용하는 기초적인 내용입니다.

그누보드 basic 스킨에 아래 내용 그대로 복사해서 먼저 테스트를 해보세요.



좀 더 간결한 방법이 추가되었습니다.

http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=177

 



1. write.skin.php


쉼표( , ) 를 기준으로 쪼개는 방식입니다. 항목명에 ( , ) 를 절대 넣으면 안 됩니다.


<?php
$option1 = explode(",", $write['wr_1']); //옵션1
$option2 = explode(",", $write['wr_2']); //옵션1
?>
옵션1 :
<input type="checkbox" name="option1[0]" value="사과"<?php echo ($option1[0] == "사과") ? " checked" : "";?>> 사과
<input type="checkbox" name="option1[1]" value="수박"<?php echo ($option1[1] == "수박") ? " checked" : "";?>> 수박
<input type="checkbox" name="option1[2]" value="딸기"<?php echo ($option1[2] == "딸기") ? " checked" : "";?>> 딸기
<input type="checkbox" name="option1[3]" value="포도"<?php echo ($option1[3] == "포도") ? " checked" : "";?>> 포도
<input type="checkbox" name="option1[4]" value="참외"<?php echo ($option1[4] == "참외") ? " checked" : "";?>> 참외
<br>
옵션2 :
<input type="checkbox" name="option2[0]" value="피자"<?php echo ($option2[0] == "피자") ? " checked" : "";?>> 피자
<input type="checkbox" name="option2[1]" value="치킨"<?php echo ($option2[1] == "치킨") ? " checked" : "";?>> 치킨
<input type="checkbox" name="option2[2]" value="족발"<?php echo ($option2[2] == "족발") ? " checked" : "";?>> 족발



2. write_update.skin.php


쉼표를 포함해서 하나로 합친 후 해당 필드에 다시 넣는 내용입니다.


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$wr_1 = "$option1[0],$option1[1],$option1[2],$option1[3],$option1[4]"; // 옵션1
$wr_2 = "$option2[0],$option2[1],$option2[2]"; // 옵션2
sql_query(" update $write_table set wr_1 = '$wr_1', wr_2 = '$wr_2' where wr_id = '$wr_id' ");
?>



3. view.skin.php


방법 1 : 체크박스 목록 그대로 출력 (선택한 항목은 체크된 채로 출력됩니다.)


317bade3e381699d810c5d83dad93d5f_1538348329_2422.png 


<?php
$option1 = explode(",", $view['wr_1']); //옵션1
$option2 = explode(",", $view['wr_2']); //옵션2
?>
옵션1 :
<input type="checkbox" name="option1[0]" value="사과"<?php echo ($option1[0] == "사과") ? " checked" : "";?>> 사과
<input type="checkbox" name="option1[1]" value="수박"<?php echo ($option1[1] == "수박") ? " checked" : "";?>> 수박
<input type="checkbox" name="option1[2]" value="딸기"<?php echo ($option1[2] == "딸기") ? " checked" : "";?>> 딸기
<input type="checkbox" name="option1[3]" value="포도"<?php echo ($option1[3] == "포도") ? " checked" : "";?>> 포도
<input type="checkbox" name="option1[4]" value="참외"<?php echo ($option1[4] == "참외") ? " checked" : "";?>> 참외
<br>
옵션2 :
<input type="checkbox" name="option2[0]" value="피자"<?php echo ($option2[0] == "피자") ? " checked" : "";?>> 피자
<input type="checkbox" name="option2[1]" value="치킨"<?php echo ($option2[1] == "치킨") ? " checked" : "";?>> 치킨
<input type="checkbox" name="option2[2]" value="족발"<?php echo ($option2[2] == "족발") ? " checked" : "";?>> 족발



방법2 : 항목명만 출력


317bade3e381699d810c5d83dad93d5f_1538348345_3407.png 


옵션1 : <?php echo preg_replace("/,/", " ", $view['wr_1']); ?>
<br>
옵션2 : <?php echo preg_replace("/,/", " ", $view['wr_2']); ?>



기타 : ul li 로 나열하는 방법


<?php
$option1 = explode(',', $view['wr_1']);
for ($i=0; $i<count($option1); $i++) {
    $option1_list = trim($option1[$i]);
    if ($option1_list=='') continue;
    $option_view .= '<li>'.$option1_list.'</li>';
}
?>
<style>
#option_list {}
#option_list:after {display:block;visibility:hidden;clear:both;content:""}
#option_list li {float:left;padding-right:5px}
</style>
<ul id="option_list">
<?php echo $option_view ?>
</ul>

댓글목록 +1

댓글목록

profile_image

초보나라님의 댓글

초보나라 작성일

정말 간결하고 깔끔한 내용 정말 정말 감사합니다. 많이 배우고 있습니다.

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

로그인

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

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

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

Copyright gnustudy.com All rights reserved.