체크박스 배열을 깔끔하게 정리하는 방법 문의드립니다.
본문
http://sir.kr/qa/161078 등의 질문에서 거의 다 온 것 같습니다.
정확히는 write.skin.php에서 값을 db로 정확히 넘길 수 있게 되었고
출력은 값을 넘길 수 있으니 어찌어찌 하다보면 될 것 같구요..
이제 한가지 글수정할때 db에 입력된 값을 체크값에도 그대로 반영하는 것만 남은 것 같습니다.
<?php $roomsize2 = explode("|", $write['room_size_2']); ?>
<tr>
<th scope="row"><label for="room_size_2">객실 타입 test</label></th>
<td>
<input type="checkbox" name="room_size_2[]" value="농구" <?=in_array("농구", $roomsize2) ? "checked" : ""?> />농구
<input type="checkbox" name="room_size_2[]" value="축구" <?=in_array("축구", $roomsize2) ? "checked" : ""?> />축구
<input type="checkbox" name="room_size_2[]" value="배구" <?=in_array("배구", $roomsize2) ? "checked" : ""?> />배구
<input type="checkbox" name="room_size_2[]" value="야구" <?=in_array("야구", $roomsize2) ? "checked" : ""?> />야구
</td>
</tr>
이렇게 하니까 db 값을 제대로 넘기고 글수정때 작성시 체크한 것을 출력하는 것 까지 성공을 했는데요.
체크박스가 많아지게 되면 너무 길어지더라구요.
요걸 깔끔하게 배열로 처리하려면 어떻게 해야 하나요?
단순하게 생각해본 것은
<?php
$room_size_2 = array();
$room_size_2[] = '농구';
$room_size_2[] = '축구';
$room_size_2[] = '배구';
$room_size_2[] = '야구';
?>
요렇게 array 값을 이용해야하나 싶은데요..
요걸 글 수정시 체크되도록 하는 능력이 없습니다.
고수님들 도움이 필요합니다.
!-->!-->
답변 2
소스가 길어져서 바꾸고 싶다는거면 아래처럼 해보세요~
<?php
$room_size_2 = array('농구','축구','배구','야구');
$r_count = count($room_size_2);
for($i=0; $i<$r_count; $i++) {
?>
<input type="checkbox" name="room_size_2[]" value="<?php echo $room_size_2[$i]?>" <?=in_array($room_size_2[$i], $roomsize2) ? "checked" : ""?> /><?php echo $room_size_2[$i];?>
<?php } ?>
$arr = array("농구", "축구", "배구", "야구");
$roomsize2 = explode("|", $write['room_size_2']);
foreach($arr as $k => $v) {
$chk = in_array($v, $roomsize2) ? " checked" : "";
echo "<input type='checkbox' name='room_size_2[]' value='".$v."'".$chk.">".$v;
}
이런 식으로 하셔도 됩니다.
참고하시라고 남깁니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.