PHP动态复选框 [英] PHP dynamic checkboxes

查看:110
本文介绍了PHP动态复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



问题: / strong>如何检查用户已经在该角色的复选框。

 <?php 
// DB QUERY:获取角色名称
// ---------------------------------- --------------------------------
$ get_roles = mysqli_query($ conn,SELECT RoleName FROM roles )
或die($ dataaccess_error);

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

//角色中的用户
while($ row2 = mysqli_fetch_array($ get_user_in_roles))
{
$ user_in_role = $ row2 ['RoleName'];
}

// echo out角色名称
while($ row1 = mysqli_fetch_array($ get_roles))
{
$ role_name = $ row1 [' RoleName'];
echo'< label class =label>< input type =checkboxname ='。$ role_name。'class =checkbox>'。$ role_name。'< / label& ';
}
?>


解决方案

我会让 $ user_in_role 一个数组,然后将第一个while循环中的语句更改为 $ user_in_role [] = $ row2 ['RoleName']; 角色名称到数组)。然后,当回显复选框时,在 class =checkbox> :<

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


I'd like to display all roles from database as check-boxes and check the ones that the current user is already in.

Question: How can I check the check-boxes where the user is already in that role.

<?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>';
}
?>

解决方案

I would make $user_in_role an array, then change the statement inside the first while loop to $user_in_role[] = $row2['RoleName']; (this appends the role name to the array). Then, when echoing the checkbox, add this between class="checkbox" and the >:

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

这篇关于PHP动态复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆