首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选中和取消选中复选框的逻辑

选中和取消选中复选框的逻辑
EN

Stack Overflow用户
提问于 2013-05-07 16:42:02
回答 1查看 544关注 0票数 1

我在一个项目上工作,它的一部分是一个表格,通过它管理员可以创建许多子管理员。在此表单上有四个复选框,管理员可以选中这些复选框,以便为子管理员设置不同的权限。然而,这个表单是可编辑的,这意味着当管理员想要编辑子管理员的一些信息时,类似的表单会打开,值填写在相应的字段中,这些字段是从数据库中提取的。因此管理员填写的信息如下:姓名、电子邮件、密码、权限(4个复选框)

稍后,如果admin想要编辑subadmin信息,他会从subadmin列表中选择该子管理员,打开相同的表单,显示相同的字段,但字段中的值来自db。因此它类似于:名称: ABC,电子邮件: abc@def.com,密码: 1234,权限(选中1或2或3或4个复选框)

现在我想要的是,当管理员点击更新按钮,子管理员的信息会随着复选框一起更新。因此,在更新信息时,管理员可以删除或赋予subadmin新的权限。例如,如果以前的subadmin只有三个权限,那么在更新时,admin可以授予或删除权限,而该子管理员可以拥有1个、2个或4个权限(之前为3个)。我已经为此编写了代码,但是在更新时,在数据库表中创建了三个新行。因此,如果子管理员在表中具有与其关联1,2,3权限,则在更新时,会在eah连续更新时一次又一次地创建1,2,3。这是我的逻辑: 1.从db表中获取所有权限,并通过表单获取权限。2.如果来自表单的权限等于来自数据库表的权限,则不执行任何操作。3.如果来自db表的权限不等于来自表单的权限,则删除不在表单权限中的db表权限。4.如果来自表单的权限不等于来自数据库表的权限,则将来自表单的权限添加到数据库表中。我的代码如下:

代码语言:javascript
复制
$subadmin_permission = $_POST['subadmin_permission'];   // permissions from form collected as an array
$query_select = "SELECT permission_name FROM ftv_subadmins_permissions WHERE subadmin_id='$subadmin_id'";
$result_select = mysql_query($query_select);
$all_permissions['all_permissions'] = array();
while($row = mysql_fetch_array($result_select))
{
    $all_permissions['all_permissions'][] = $row['permission_name'];    // permissions from database collected as an array
}

    if(empty($subadmin_permission))
    {
    }
    else
    {
        $query = "UPDATE ftv_subadmins_login_info SET subadmin_name='$subadmin_name', subadmin_mobile='$subadmin_mobile', ".
                 "subadmin_email='$subadmin_email', subadmin_address='$subadmin_address', subadmin_city='$subadmin_city', ".
                 "subadmin_state='$subadmin_state', subadmin_country='$subadmin_country' WHERE subadmin_id='$subadmin_id'";
        $result = mysql_query($query);

        if($result)
        {
            foreach($all_permissions['all_permissions'] as $value)
            {
                if(in_array($value, $subadmin_permission))
                {
                }
                if(in_array($value, $subadmin_permission) != TRUE)
                {
                    foreach($all_permissions['all_permissions'] as $value)
                    {
                        $query_permission_delete = "DELETE FROM ftv_subadmins_permissions WHERE permission_name='$value' AND subadmin_id='$subadmin_id'";
                        $result_permission_delete = mysql_query($query_permission_delete);

                        if($result_permission_add)
                        {
                            $msg = "<span style='color:green; font-weight:bold;'>Sub-admin details has been updated</span>";
                        }
                        else
                        {
                            $msg = "<span style='color:red; font-weight:bold;'>Sub-admin details could not be updated</span>";
                        }
                    }
                }
            }

            foreach($subadmin_permission as $value)
            {
                if(in_array($value, $all_permissions['all_permissions']) != TRUE)
                {
                    foreach($subadmin_permission as $value)
                    {
                        $query_permission_add = "INSERT INTO ftv_subadmins_permissions(subadmin_id, permission_name, permission_value, permission_creation_date)" .
                                            "VALUES('$subadmin_id', '$value', 'Y', NOW())";
                        $result_permission_add = mysql_query($query_permission_add);
                    }
                }
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2013-05-07 16:51:21

在编辑表单中呈现复选框时请使用以下脚本

代码语言:javascript
复制
<input type="checkbox"  <?php if($row['permission1']=='value1')  {

echo 'checked="checked"'; } ?> name="permission1" id="permission1" value="value1" />

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16414787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档