データベースフィールドの内容には次のデータがあります:
s1、s2、s3、s4、s5
データは s1、s2、s5 のみである場合、いつでも変更されますが、s1 と s2 は固定です
HTML :
input type="チェックボックス" name="content[]" value="s5" >
......
PHP:
$sql="select * from `user_role` "; $db-> ;getRow($sql);
$row_role = $row_role['content'];
$role=explode(',',$row_role);// 配列に分割する
データベースには s1 、s2、s3 があり、s3 は選択された状態になります
ディスカッションに返信 ( solution)
<?php/*$sql="select * from `user_role` ";$row_role = $db->getRow($sql);$row_role = $row_role['content'];$role=explode(',',$row_role);//分割成数组*/$role = array('s1','s2','s3');?><input type="checkbox" name="content[]" <?php if(in_array('s1',$role) && in_array('s2',$role) && in_array('s3',$role)){ ?>checked="checked"<?php } ?> value="s3" ><input type="checkbox" name="content[]" value="s4" ><input type="checkbox" name="content[]" value="s5" >
この文では、 s1, s2, s3....などは不確実で数十になる可能性がありますが、どうすれば改善できますか?
dbを読んで理解できませんでしたか?
DBを読まないだけです。データベースを読み取り、選択したものを $role に書き込むだけです。
ルールが異なる場合は、異なるブランチを記述するだけです。 例:
$s3check = 0;
if(xxx){
$s3check=1;
}elseif(xxx){
$s3check=0; } else{
$s3check=1;
}
checked="チェック済み"< ; ?php } ?>