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

PHP에 체크박스 in_array 문법질문 채택완료

godglee 4년 전 조회 1,301

</p>

<p>    function member_list() 

    {

        global $g5;

        $check1 = explode(',', $write['wr_5']);

        $sqlv = "select * from $g5[member_table] where mb_level < 6";

        $resultv = sql_query($sqlv); 

            for ($v=0; $row=sql_fetch_array($resultv); $v++) 

                { 

                    $str .= "\n".'<input type="checkbox" name="check1[]" value="'.$row['mb_name'].'" <span style="color:#e74c3c;">'in_array(.$row['mb_name'].,$check1)?'checked="checked"':'""';' </span>> '."\n".' <label for="wr_5">'.$row['mb_name'].'</label>';

                } 

        return $str;

    }

write_skin.php파일에서

체크박스 저장된 배열, 수정시 체크된 상태로 하려고 합니다. 

'in_array(.$row['mb_name'].,$check1)?'checked="checked"':'""';'

저부분이 틀렸는데 여러번 적어봐도 어디 틀렸는지 모르겠네요, 고수님들 지적해 주세요~

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

답변 2개

채택된 답변
+20 포인트

일단 삼항연산자로 하셨어야하는데 기본문법이 잘못되었고,

잘못 삽입하였습니다.

 

이렇게 한번 해보셔요~

</p>

<p>   function member_list() 

    {

        global $g5;

        $check1 = explode(',', $write['wr_5']);

        $sqlv = "select * from $g5[member_table] where mb_level < 6";

        $resultv = sql_query($sqlv); 

            for ($v=0; $row=sql_fetch_array($resultv); $v++) 

                { 

                    $checked = ( in_array($row['mb_name'],$check1) )?'checked="checked"':'""';</p>

<p>                    $str .= "\n".'<input type="checkbox" name="check1[]" value="'.$row['mb_name'].'"  '.$checked.' > '."\n".' <label for="wr_5">'.$row['mb_name'].'</label>';

                } 

        return $str;

    }</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

g
godglee
4년 전
마찬가지로 수정페이지에서는 체크되지 않네요,
g
godglee
4년 전
마찬가지로 수정페이지에서는 체크되지 않네요,

혹시, 수정페이지에 값을 가져오지 못하는건 아닐까요?
D
DogFoot개발
4년 전
function member_list()
{
global $g5,$write;
$check1 = explode(',', $write['wr_5']);
$sqlv = "select * from $g5[member_table] where mb_level < 6";
$resultv = sql_query($sqlv);
for ($v=0; $row=sql_fetch_array($resultv); $v++)
{
$checked = ( in_array($row['mb_name'],$check1) )?'checked="checked"':'""';
$str .= "\n".'<input type="checkbox" name="check1[]" value="'.$row['mb_name'].'" '.$checked.' > '."\n".' <label for="wr_5">'.$row['mb_name'].'</label>';
}
return $str;
}
D
DogFoot개발
4년 전
또 한가지 방법은 member_list($write)인자를 받아서 처리하셔야합니다.
g
godglee
4년 전
이제 됩니다. 감사합니다.

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

Policia
4년 전

'in_array(.$row['mb_name'].,$check1)?'checked="checked"':'""';'

'.in_array($row['mb_name'],$check1)?'checked="checked"':'""'.'

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

g
godglee
4년 전
checked="checked" 만 배열개수만큼 나와요,
P
Policia
4년 전
member_list 함수에 파라미터를 추가해주셔서 정보를 받아야합니다
function member_list($write)
이렇게 하고
사용하실때 mebmer_list($write) 정보를 담아서 보내주세요
g
godglee
4년 전
답변 감사합니다. DogFoot개발님꺼로 하니까 잘되네요,

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

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

로그인