기본환경설정 여분필드 1번에 A|B|C|D를 기록해두고
register.form.skin.php에
Copy
<?php
$mb_2 = explode('|',$mb['mb_2']);
?>
...
<?
$class_arr=explode("|",$config['cf_1']);
$r_count = count($class_arr);
for($i=0; $i<$r_count; $i++) {
$checked = in_array($class_arr[$i], $member['mb_2']) ? ' checked' : '';
echo '<input type="checkbox" id="mb_2" name="mb_2[]" value="'.$class_arr[$i].'"'.$checked.'>'.$class_arr[$i].' ';
}
?>
와 같이 배열을 받아 체크박스를 나타내는데까지는 잘 되었습니다.
가입시와 수정시 값이 DB에 잘 찍히는것도 됩니다.
그런데 수정시 화면에서는 체크박스가 풀려있는데 왜 그럴까요?
|
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
2020-11-27 (금) 22:20:39
Copy
$mb_2 = explode('|',$mb['mb_2']); <--이게 잘못 되었습니다
수정 $mb_2 = explode('|',$member['mb_2']);<---하지만 이 코드 필요없습니다
$checked = in_array($class_arr[$i], $member['mb_2']) ? ' checked' : '';
수정
$member['mb_2'] ==> $mb_2;
<-- 코드를 맞게 수정하더라도 저렇게 검사할 필요가 없습니다
수정
$checked = str_pos($member['mb_2'], $class_arr[$i]) !==false ? 'checked' : '';
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.