채택완료

다중선택시 체크박스 선택한것만 체크표시 나타나게

2018-09-30 (일) 04:18:39 4,453

밑에 코드는 기존에 단일 선택할때 사용하던 코드입니다

Copy
<th>일정관리</th>
 <td>
  <input type="checkbox" name="schedule[0]" value="수학" <?php echo $schedule=="수학" ? ' checked="checked"':'';?>> 수학
  <input type="checkbox" name="schedule[1]" value="문학"<?php echo $schedule=="문학" ? ' checked="checked"':'';?>> 문학
  <input type="checkbox" name="schedule[2]" value="역사"<?php echo $schedule=="역사" ? ' checked="checked"':'';?>> 역사
  <input type="checkbox" name="schedule[3]" value="영어"<?php echo $schedule=="영어" ? ' checked="checked"':'';?>> 영어
 </td>

필드테이블 한개만 사용해서 다중선택을 구현했습니다

DB에도 잘들어가고 해당 일정관리에서도 잘 표현이 되는데요

문제는 모든 체크박스가 항상 체크가 되어있습니다 선택한것만 체크가 되야 정상인데

어느부분에서 문제가 발생하는지 잘 모르겠습니다

Copy
<?php
$schedule = "수학,문학,역사,영어";
$tmp_schedule = explode(",",$schedule);
?>

<th>일정관리</th>
 <td>

<input type="checkbox" name="schedule[0]" value="수학"  
    <?php for($i=0;$i<sizeof($tmp_schedule);$i++){
            if($tmp_schedule[$i]=="수학") echo "checked='checked'";
        }?>> 수학
<input type="checkbox" name="schedule[1]" value="문학"  
         <?php for($i=0;$i<sizeof($tmp_schedule);$i++){
                if($tmp_schedule[$i]=="문학") echo "checked='checked'";
         }?>> 문학
<input type="checkbox" name="schedule[2]" value="역사"  
         <?php for($i=0;$i<sizeof($tmp_schedule);$i++){
                if($tmp_schedule[$i]=="역사") echo "checked='checked'";
         }?>> 역사
<input type="checkbox" name="schedule[3]" value="영어"  
         <?php for($i=0;$i<sizeof($tmp_schedule);$i++){
         if($tmp_schedule[$i]=="영어") echo "checked='checked'";
         }?>> 영어
</td>

선배님들 초보에게 친절한 설명 및 가르침을 내려주시면 감사하겠습니다 ㅠ

답변 2개 / 댓글 4개

채택된 답변
+20 포인트

<input type="checkbox" name="schedule[0]" value="수학"<?php echo ($schedule[0]=="수학") ? ' checked="checked"':'';?>> 수학
<input type="checkbox" name="schedule[1]" value="문학"<?php echo ($schedule[1]=="문학") ? ' checked="checked"':'';?>> 문학
<input type="checkbox" name="schedule[2]" value="역사"<?php echo ($schedule[2]=="역사") ? ' checked="checked"':'';?>> 역사
<input type="checkbox" name="schedule[3]" value="영어"<?php echo ($schedule[3]=="영어") ? ' checked="checked"':'';?>> 영어

답변에 대한 댓글 2개

2018-09-30 (일) 04:58:56
작은별님 답변달아주셔서 감사합니다 하지만 디비에는 값이 들어가지만 체크박스는 체크가 풀려져있습니다...ㅠ
직접 해봤는데 됩니다.

답변에 대한 댓글 2개

2018-09-30 (일) 05:09:46
그럼 뭐가 문제일까요 저는 계속 체크박스가 풀려져버립니다 디비는 저장이 되어있지만요..
배열로 해놓으셨는데 write.skin.php 전체를 올려보세요.
write_update.skin.php 파일에서 관련 부분이 있으면 그것도..

답변을 작성하려면 로그인이 필요합니다.