複数選択ボックスのデフォルト選択問題に関する PHP プログラミング
2 つのテーブル
sub_role_table(srt_id,id,role_id)id はユーザー ID、role_id はロール ID
role_table(role_id,role_name) role_name はロール名
次に、1 人のユーザーに対して複数のロールの変更を実装する必要があります。変更ページでは、すべてのロールがサイクルアウトされ、ユーザーが持つロールとデフォルトで選択されるロールが決まります。
ソースコードは次のとおりです
========== ================================ =============
$ sql="select * from role_table where role_id!=0";
$re=mysql_query($sql);
$ sql2="select * from sub_role_table where id='$id'";
$res=mysql_query($sql2);
$showa = '';
while ($row=mysql_fetch_array($res)){
while ( $roww=mysql_fetch_array($re)){
if($roww[role_id]==$row[role_id]) {
$ showa .= "$roww[role_name]";
} else {
$showa .= "
$roww[role_name]";
}
}
}
print_r($showa);
?>
ユーザーが複数のロールを持つ場合、デフォルトではユーザーの最初のロールのみが選択され、他のロールはデフォルトでは選択されないことを願っています。コードのどこが間違っているかを見つけるのに役立ちます。このデフォルトのチェックボックスの選択問題を実装してください
-----解決策----------- --------
<?php /* [2012-5-17] 作成 */ #すべての情報 $sql = "select * from role_table where role_id!=0"; $re = mysql_query($sql); if (!$re) die("SQL:{$sql}<br>エラー:" . mysql_error()); if (mysql_affected_rows() > 0) { $allinfors = 配列(); while ($rows = mysql_fetch_array($re)) { array_push($allinfors, $rows); } } #情報を修正するには $sql2 = "select * from sub_role_table where id='$id'"; $res = mysql_query($sql2); if (!$re) die("SQL:{$sql}<br>エラー:" . mysql_error()); if (mysql_affected_rows() > 0) { $editinfor = mysql_fetch_array($res); } ?> <?php foreach($allinfors as $all){ ?> <input type="checkbox" name="item[]" value="<?=$all['role_id']?><?=($all['role_id']==$editinfor[ 'role_id'])?"checked=checked":""?><?=$all['role_name']?> <?php } ?>