채택완료

PHP에 체크박스 in_array 문법질문

Copy
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'].'" 'in_array(.$row['mb_name'].,$check1)?'checked="checked"':'""';' > '."\n".' <label for="wr_5">'.$row['mb_name'].'</label>';
                } 
        return $str;
    }

write_skin.php파일에서

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

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

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

|

답변 2개 / 댓글 8개

채택된 답변
+20 포인트

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

잘못 삽입하였습니다.

 

이렇게 한번 해보셔요~

Copy
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"':'""';

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

답변에 대한 댓글 5개

마찬가지로 수정페이지에서는 체크되지 않네요,
마찬가지로 수정페이지에서는 체크되지 않네요,

혹시, 수정페이지에 값을 가져오지 못하는건 아닐까요?
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;
}
또 한가지 방법은 member_list($write)인자를 받아서 처리하셔야합니다.
이제 됩니다. 감사합니다.

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

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

답변에 대한 댓글 3개

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

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