php checkbox 从数据库读取和写入
转载:http://bbs.csdn.net/topics/392019778?page=1
http://www.w3school.com.cn/php/func_array_in_array.asp
checkbox将选中的值写入数据库中,在修改的时候如何从数据库中读取并设定Checkbox的状态
1.写入数据库
提交后
因为你的rol是数组,所以可以使用$_POST获取
1
2
3
4
5
6
|
<?php $rol = $_POST [ 'rol' ]; // 连接数据库后 $sqlstr = "insert into 表(rol) values(" .implode( ',' , $rol ). ")" ; mysql_query( $sqlstr ); ?> |
2修改时读到checkbox
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简单效果
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> |
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 |
可选。规定所返回的数组元素的数目。 可能的值:
|
例子
<!DOCTYPE html>
<html>
<body><?php
</body>
$str = 'one,two,three,four'; // 零 limit
print_r(explode(',',$str,0)); // 正的 limit
print_r(explode(',',$str,2)); // 负的 limit
print_r(explode(',',$str,-1));
?>
</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
</body>
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode("+",$arr);
?>
</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 从数据库读取和写入的更多相关文章
- SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable
MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...
- 数据库并行读取和写入(Python实现)
这篇主要记录一下如何实现对数据库的并行运算来节省代码运行时间.语言是Python,其他语言思路一样. 前言 一共23w条数据,是之前通过自然语言分析处理过的数据,附一张截图: 要实现对news主体的读 ...
- asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
来源:http://ajxfxb.blog.163.com/blog/static/56675086201411634336878/ 作者是:没完没了的工作 asp.net报错“尝试读取或写入受保护的 ...
- SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存
SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存.这通常指示其它内存已损坏.(System.Data). 而登录本地数据库实例则能顺利登入,不存在上述问题. 试一试重置 ...
- ArcEngine尝试读取或写入受保护的内存
先说一下我的开发环境: Win10 + ArcGIS10.0 + ArcEngine10.0 + Framework4.0 今天调用新的GP工具则出现"尝试读取或写入受保护的内存.这通常指示 ...
- C#实现从数据库读取数据到Excel
用第三方组件:NPOI来实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...
- ASP.NET状缓存Cache的应用-提高数据库读取速度
原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述 既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...
- SQL2012尝试读取或写入受保护的内存。这通常指示其他内存已损坏
SQL2012尝试读取或写入受保护的内存.这通常指示其他内存已损坏 今天打开SQL2012,突然就连接不了数据库,一开始还以为是某个服务器崩溃了,结果试了好几个,都还是如此,弹出提示如下: 尝试读取或 ...
- Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏
今日遇到这样一个问题,用vs2010调试C#代码时,只要代码一运行到跟数据库关联的地方时,编译器就报错误,给的提示如:调试器已附加,要继续需要分离什么的,咋一看还以为是vs中调试器设置的问题,可后来仔 ...
随机推荐
- BOM基础(二)
跟DOM一样,BOM其实也是由很多的API组成. 不过对于BOM来说,最痛苦的不是不记得API,而是明明记得这个这个API,却没有考虑到它的兼容性. 之前的文章中讲到了offset系列的属性,他的宽高 ...
- 深入Redux架构
关于redux 之前写了一篇通过一个demo了解Redux,但对于redux的核心方法没有进行深入剖析,在此重新总结学习,完整的代码看这里.(参考了React 技术栈系列教程) 什么情况需要用redu ...
- 每天一个Linux命令 6
rpm包管理--yum在线管理 ip地址配置和网络yum源ip地址配置 #setup 使用setup工具 #vi /etc/sysconfig/network-scripts/ifcfg-eth0把O ...
- swift -- 构造/析构函数
一.构造函数 //当一个类实例化一个对象时候,第一个调用的方法 class Student { //属性 var name = "ser" let age : Int //1.重 ...
- 关于Maven的安装及初步使用
关于Maven的初步使用 1. 下载: 进入http://maven.apache.org/download.cgi下载 Maven 3.3.1 2. 将压缩包解压到自己的硬盘中,最好放在某个盘 ...
- 【转】请求处理机制其三:view层与模板解析
进入 View 了 如果处理过程这时候还在继续的话,处理器会调用 view function.Django 中的 Views 不很严格因为它只需要满足几个条件: 必须可以被调用. 必须接受 djan ...
- 关于css+div布局的疑问 2017-03-19
第一次布局一个静态网页,发现许多细节都需要自己探索,出现诸如以下问题: 1.布局问题:经常出现一个div被挤出来?做到一半少一个div布局? 布局之前,要点打好框架,明确每个地方的高宽是多少,争取精确 ...
- 简单的add函数的N种写法
最近在学习es6,看到for-of这里,就想自己写着练习一下,于是就准备写一个小函数add来求和.函数很简单,如add(1,2,3)这样.于是我开始着手 一开始我是这么写的 function add( ...
- Android中的ScrollTo和ScrollBy解析
关于Android中的ScrollBy和ScrollTo方法相信大家并不陌生,这两个方法是在View中实现的.所以在各个继承了View的类都可以使用改方法. 在View中对这两个方法的源码编写是这样的 ...
- css颜色代码对照
FFFFFF #DDDDDD #AAAAAA #888888 #666666 #444444 #000000 #FFB7DD #FF88C2 #FF44AA #FF0088 #C10066 #A ...