PHP动态复选框

时间:2010-11-02 04:05:41

标签: php dynamic checkbox

我想将数据库中的所有角色显示为复选框,并检查当前用户已经在的角色。

问题:如何查看用户已担任该角色的复选框。

<?php
// DB QUERY: get role names
// ------------------------------------------------------------------
$get_roles = mysqli_query($conn, "SELECT RoleName FROM roles")
or die($dataaccess_error);

$get_user_in_roles = mysqli_query($conn, "SELECT RoleName FROM users_in_roles WHERE UserId = $user_id")
or die($dataaccess_error);
// ------------------------------------------------------------------

// user in roles
while($row2 = mysqli_fetch_array($get_user_in_roles))
{
    $user_in_role = $row2['RoleName'];
}

// echo out role names
while($row1 = mysqli_fetch_array($get_roles))
{
    $role_name = $row1['RoleName'];
    echo '<label class="label"><input type="checkbox" name='.$role_name.' class="checkbox">'.$role_name.'</label>';
}
?>

2 个答案:

答案 0 :(得分:1)

我会使$user_in_role成为一个数组,然后将第一个while循环中的语句更改为$user_in_role[] = $row2['RoleName'];(这会将角色名称附加到数组中)。然后,在回显该复选框时,请在class="checkbox">之间添加:

' . (in_array($role_name, $user_in_role) ? ' checked="checked"' : '') . '

答案 1 :(得分:0)

<input checked='checked' type='checkbox' ... />

您还可以disable输入字段。

<input checked='checked' disabled='disabled' type='checkbox' ... />

有效地勾选并禁用复选框。

相关问题