채택완료

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

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

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개

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

답변에 대한 댓글 2개

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

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