转载:http://bbs.csdn.net/topics/392019778?page=1

http://www.w3school.com.cn/php/func_array_in_array.asp

checkbox将选中的值写入数据库中,在修改的时候如何从数据库中读取并设定Checkbox的状态

1.写入数据库
提交后
因为你的rol是数组,所以可以使用$_POST获取

PHP code

 

?

1
2
3
4
5
6
<?php
$rol $_POST['rol'];
// 连接数据库后
$sqlstr "insert into 表(rol) values(".implode(',',$rol).")";
mysql_query($sqlstr);
?>

2修改时读到checkbox

PHP code

 

?

1
2
3
4
5
6
7
8
9
10
11
<?php
// 连接数据库,把对应记录获取
$sqlstr "select * from 表 limit 1";
$query = mysql_query($sqlstr);
$result = mysql_fetch_assoc($query); // $result就是你的数据记录
 
$rols explode(','$result['rol']); // 分解为数组
 
然后判断:
?>
<input type="checkbox" name="rol[]" value="1" id="rol_0" <?php if(in_array(1, $rols)){ echo 'checked="checked"';} ?>  >

3简单效果

PHP code

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$rols array(1,2,3);
?>
<li>拥有权限:
                <p>
            <span style="padding-top:15px;">
              <input type="checkbox" name="rol[]" value="1" id="rol_0" <?php if(in_array(1, $rols)){ echo 'checked="checked"'; } ?> >
              随机抽取人员</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="2" id="rol_1">
              新增执法人员</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="3" id="rol_2">
              编辑执法人员</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="4" id="rol_3">
              信息查询打印</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="5" id="rol_4">
              部门设置</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="6" id="rol_5">
              管理员设置</span>
                    <br>
                    <span>
              <input type="checkbox" name="rol[]" value="7" id="rol_6">
              全局设置</span>
                    <br>
 
                </p>
            </li>
 
 
4.php三个函数解释:
in_array() 函数搜索数组中是否存在指定的值。
in_array(search,array,type)
参数 描述
search 必需。规定要在数组搜索的值。
array 必需。规定要搜索的数组。
type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

说明

如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。如果没有在数组中找到参数,函数返回 false。

注释:如果 search 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。

例子:

<?php
$people = array("Bill", "Steve", "Mark", "David"); if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}
?>

explode() 函数把字符串打散为数组。

注释:"separator" 参数不能是空字符串。

语法

explode(separator,string,limit)
参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit

可选。规定所返回的数组元素的数目。

可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 返回包含一个元素的数组

例子

<!DOCTYPE html>
<html>
<body> <?php
$str = 'one,two,three,four'; // 零 limit
print_r(explode(',',$str,0)); // 正的 limit
print_r(explode(',',$str,2)); // 负的 limit
print_r(explode(',',$str,-1));
?>
</body>
</html>
结果:
Array ( [0] => one,two,three,four ) Array ( [0] => one [1] => two,three,four ) Array ( [0] => one [1] => two [2] => three )

implode() 函数返回由数组元素组合成的字符串。

语法

implode(separator,array)
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要组合为字符串的数组。

例子

<!DOCTYPE html>
<html>
<body> <?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode("+",$arr);
?>
</body>
</html> 结果
Hello+World!+I+love+Shanghai! 5在MVC模式下的应用
html部分:
 <?php
//根据逗号,将字符串分割为数组
$label = explode(',', $data["label"]);
?>
<input type="checkbox" name="label[]" value="1" <?php if(in_array(1, $label)){ echo 'checked="checked"';} ?> >网站
<input type="checkbox" name="label[]" value="2" <?php if(in_array(2, $label)){ echo 'checked="checked"';} ?> >客户端
<input type="checkbox" name="label[]" value="3" <?php if(in_array(3, $label)){ echo 'checked="checked"';} ?> >移动app
<input type="checkbox" name="label[]" value="4" <?php if(in_array(4, $label)){ echo 'checked="checked"';} ?> >硬件
<input type="checkbox" name="label[]" value="5" <?php if(in_array(5, $label)){ echo 'checked="checked"';} ?> >其他
Controller部分
        $product = M('Product')->where(' id= 2')->find();
$this->assign('data', $product);
$this->display();
Mysql 数据库字段
id name label
label varchar类型    例如: 1,3,5

php checkbox 从数据库读取和写入的更多相关文章

  1. SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable

    MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...

  2. 数据库并行读取和写入(Python实现)

    这篇主要记录一下如何实现对数据库的并行运算来节省代码运行时间.语言是Python,其他语言思路一样. 前言 一共23w条数据,是之前通过自然语言分析处理过的数据,附一张截图: 要实现对news主体的读 ...

  3. asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法

    来源:http://ajxfxb.blog.163.com/blog/static/56675086201411634336878/ 作者是:没完没了的工作 asp.net报错“尝试读取或写入受保护的 ...

  4. SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存

    SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存.这通常指示其它内存已损坏.(System.Data). 而登录本地数据库实例则能顺利登入,不存在上述问题. 试一试重置 ...

  5. ArcEngine尝试读取或写入受保护的内存

    先说一下我的开发环境: Win10 + ArcGIS10.0 + ArcEngine10.0 + Framework4.0 今天调用新的GP工具则出现"尝试读取或写入受保护的内存.这通常指示 ...

  6. C#实现从数据库读取数据到Excel

    用第三方组件:NPOI来实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...

  7. ASP.NET状缓存Cache的应用-提高数据库读取速度

    原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述       既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...

  8. SQL2012尝试读取或写入受保护的内存。这通常指示其他内存已损坏

    SQL2012尝试读取或写入受保护的内存.这通常指示其他内存已损坏 今天打开SQL2012,突然就连接不了数据库,一开始还以为是某个服务器崩溃了,结果试了好几个,都还是如此,弹出提示如下: 尝试读取或 ...

  9. Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏

    今日遇到这样一个问题,用vs2010调试C#代码时,只要代码一运行到跟数据库关联的地方时,编译器就报错误,给的提示如:调试器已附加,要继续需要分离什么的,咋一看还以为是vs中调试器设置的问题,可后来仔 ...

随机推荐

  1. Tp框架 之对控制器的一些操作等

    在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟 ...

  2. 3.java的hello word.继承.泛型.反射.配置项.数据库操作.lombok

    迷迷茫茫的开始了第一步.弄个hello word.结果这第一小步也不是那么的顺利. 明明照着图敲的.可就是没有运行选项. 为此还百度了一下.也没有什么答案.最后只能老老实实的看了.结果还是粗心的问题. ...

  3. 关于如何介绍spring框架。

    一.介绍Spring 1.Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架. 2.概念:轻量级的IOC(控制反转或者依赖注入).AOP(面向切面或者面向方面) ...

  4. mybatis基础学习2---(resultType和resultMap的用法和区别)和setting的用法

    1:resultType和resultMap两者只能有一个成立 2:resultMap可以解决复杂查询时的映射问题 3:使用 resultType使用 ------------------------ ...

  5. 用shell实现linux系统应用文件清理工具

    用shell实现linux系统文件清理工具 1:原始需求 在系统运维中,会产生大量应用备份文件.落地文件等,这些文件需要定时清理.一般来说,都是使用crontab 拉起一个脚本来清理.类似这样: 30 ...

  6. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  7. Android中的Drawable和动画

    Android中Drawable是一种可以在Canvas上进行绘制抽象的概念,种类很多,常见的颜色和图片都可以是一个Drawable.Drawable有很多种,它们表示一种图像的概念,但是它们又不全是 ...

  8. supervisor安装配置

    1.安装 下载:https://codeload.github.com/Supervisor/supervisor/zip/3.1.3 2.安装 .zip cd supervisor- python ...

  9. SharePoint JavaScript 客户端对象使用视频教程

    本次视频教程是为大家介绍如何使用SharePoint JavaScript客户端对象,包括对于站点.列表.文档库.列表项.文件夹.文件和附件等基本对象的操作,同时,为大家举几个简单的应用的例子,让大家 ...

  10. Liniux系统下目录的权限意义

    访问者及其基本权限 Linux系统内的文件访问者有三种身份,分别是: a) 文件和文件目录的所有者: u---User(所有权);b) 文件和文件目录的所有者所在的组的用户: g---Group;c) ...