테스트 사이트 - 개발 중인 베타 버전입니다

회원정보 수정시 체크박스 풀림 현상 채택완료

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년 전
잘 해결되었습니다. 정말 감사드립니다^^

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

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

로그인