다충체크박스 (여분필드사용) 리스트에서 if문구현방법,
본문
고수분들께 여쭙니다,
그누스터디 여분필드 다중체크박스 참조
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=151&sfl=wr_subject%7C%7Cwr_content&stx=%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4&sop=and
옵션1: 수박 딸기 참외
옵션1 : <?php echo preg_replace("/,/", " ", $view['wr_1']); ?>
----------------------------
그누보드 QA 답변참조
질문내용 다중체크박스 여러개선택 리설트에
여러개 출력은 됩니다,
저기에서 출력된 결과에 원하는 결과가 있을시 즉,
만약 옵션1에 수박 딸기 참외중,
수박이 있으면 수박만 나오게,
<?php if($list[$i]['wr_1']==수박) {// 이게 문의 요지입니다, 여러개 결과나오니 같지않으니 수박 딸기 참외니,
echo "
수박은 품절입니다"
;
} else if ($list[$i]['wr_1']==참외) {
echo "
참외 는 할인됩니다 "
;
} else{
}
?>
----------------------
, 여러개 결과나오니 같지않으니 수박 딸기 참외니,
조건식 결과에 여러개 결과에 각각 다른조건으로 다시 분기하려면,
구성식을 어떻게 해야하나요?
(여분필드 다중체크박스로 구현 방법)
답변 2
$wr_1 = explode(",",$list[$i]['wr_1']);
구분자 배열을 처리해서
if(in_array("수박", $wr_1)){
echo "수박은 품절입니다.";
}
이런식으로 배열에 포함되는 기준을 체크해서 처리해 주시면 되십니다.
저렇게해서 echo 불러와지지 않습니다,깨저버려요,,'
뷰스킨도 마찮가지고,
그누스터디에 두가지 방법이 있는데
( 좀 더 간결한 방법이 추가되었습니다.
http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=177 )
저방법이 array 만 뜨고 뷰페이지으 체크박스 선택 내용이 나오질않아,
종전방법사용했고, 하단처럼 분기됩니다
상단 방법을
<input type="checkbox" name="check1[]" value="사과"<?php echo in_array("사과", $check1) ? ' checked="checked"' : '' ?>> 사과/
안내 주신거같아요,
현재구현된것은 하단 방법입니다,
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" : "";?>> 사과
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 : 체크박스 목록 그대로 출력 (선택한 항목은 체크된 채로 출력됩니다.)!-->
<?php
$option1 = explode(",", $view['wr_1']); //옵션1
$option2 = explode(",", $view['wr_2']); //옵션2
?>
방법2 : 항목명만 출력
옵션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>