다중선택 값에서 input 선택된 놈일 때 checked 표시 뜨게 하는 방법
본문
<tr>
<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>
</tr>
다중선택을 구현했습니다 DB에도 잘들어가고 해당 일정관리에서도 잘 표현이 되는데요
문제는 수정을 하거나 관리자로 들어가면 디비에는 분명히 예) 수학,역사 이렇게 되어있지만
체크박스에는 전혀 해당부분에 체크가 안되어있습니다
이부분을 체크박스에 표시가 되게 하고싶은데 아직 초보라서 잘 모르겠습니다
조금만 자세히 가르쳐 주시면 감사하겠습니다..
해당 쿼리문은 필요가 없는거 같아서 안올렸습니다..
!-->답변 1
DB에 들어갈때 수학 문학 역사 영어 필드가 따로 있는것인가요. 필드가 따로 있는경우이면 위에서 하신방법이 맡을것이구요. 그렇지 않고 하나의 필드에 수학,역사 이런식으로 조합해서 DB에 입력이 된다면 explode 나 strpos 정도의 함수로 체크 해야 할듯 합니다. explode일경우 이정도면 되지 않을까요.
<?
$schedule="수학,역사";
$tmp = explode(",",$schedule);
?>
<input type="checkbox" name="schedule[0]" value="수학"
<?php for($i=0;$i<sizeof($tmp);$i++){
if($tmp[$i]=="수학")echo "checked='checked'";
}?>> 수학
답변을 작성하시기 전에 로그인 해주세요.