회원정보 수정시 체크박스 풀림 현상 채택완료
cubkdy
4년 전
조회 3,710
기본환경설정 여분필드 1번에 A|B|C|D를 기록해두고
register.form.skin.php에
</p>
<p><?php
$mb_2 = explode('|',$mb['mb_2']);
?></p>
<p>...</p>
<p><?
$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].' ';
}
?></p>
<p>
와 같이 배열을 받아 체크박스를 나타내는데까지는 잘 되었습니다.
가입시와 수정시 값이 DB에 잘 찍히는것도 됩니다.
그런데 수정시 화면에서는 체크박스가 풀려있는데 왜 그럴까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
4년 전
</p>
<p><span class="token variable">$mb_2</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'|'</span><span class="token punctuation">,</span><span class="token variable">$mb</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'mb_2'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">; <--이게 잘못 되었습니다</span></p>
<p>수정 <span class="token variable">$mb_2</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'|'</span><span class="token punctuation">,</span><span class="token variable">$member</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'mb_2'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;<---하지만 이 코드 필요없습니다</span></p>
<p> </p>
<p><span class="token variable">$checked</span> <span class="token operator">=</span> <span class="token function">in_array</span><span class="token punctuation">(</span><span class="token variable">$class_arr</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token variable">$member</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'mb_2'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token single-quoted-string string">' checked'</span> <span class="token punctuation">:</span> <span class="token single-quoted-string string">''</span><span class="token punctuation">;</span></p>
<p>수정</p>
<p><span class="token variable">$member</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'mb_2'</span><span class="token punctuation">] ==> $mb_2;</span></p>
<p><span class="token punctuation"><-- 코드를 맞게 수정하더라도 저렇게 검사할 필요가 없습니다</span></p>
<p>수정</p>
<p><span class="token variable">$checked</span> <span class="token operator">= str_pos($member['mb_2'], $class_arr[$i]) !==false ? 'checked' : '';</span></p>
<p> </p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
c
cubkdy
4년 전
잘 해결되었습니다. 정말 감사드립니다^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인