Tags
apache backup C cache cassandra checkbox config crontab database editplus firefox function html ie6 java javascript jquery jsScrolling lampp linux memcache mysql nginx NoSql packer pear php plugin popup ppt python scrollbar server shell svn Tips tool ttserver ubuntu vim VirtualHost vps win xdebug ZendStudioCategories
-
Recent Posts
- 删除 MySQL 二进制日志(log-bin)
- 抽象类与接口类
- MySQL 4.1+ using old authentication
- 在VPS上搭建VPN
- Windows 下安装 Memcached
- 理解 Memcache 的服务器端与客户端
- 理解PHP中Mysql的永久连接
- Web-Server 中 PHP 的两种工作方式
- Zend Studio 使用 Xdebug 断点调试
- Zend Studio 中 PHP Language Library 的用处
- Windows 下安装 mongoDB
- C 操作 MySql
- Linux下SVN客户端版本库定时更新
- 开启SVN-Server上的密码认证功能
- 通过rsync定期备份windows下svn目录到linux
Archives
- September 2011 (1)
- August 2011 (3)
- July 2011 (4)
- June 2011 (9)
- May 2011 (1)
- April 2011 (3)
- March 2011 (2)
- January 2011 (3)
- October 2010 (2)
- September 2010 (9)
- August 2010 (22)
-
RSS Links
Blogroll
-
Meta
怎样保存 Checkbox 值
预备知识点:
OK. 进入正题:
我们现在要记录用户的兴趣爱好, 兴趣爱好有很多选项, 可以复选, 表现在页面上就是一堆的 checkbox , 它看起来像是这样子的
假设用户勾选的是 "爱好1", "爱好3", "爱好5", 我们要怎么把用户勾选的值保存到数据库呢?
方法1:
方法2:
我用的是方法3:
为什么是2的N(N>=0)次方? ( 1, 2, 4, 8, 16, 32, ... )
我们来看看页面前端 javascript 是怎么保存和还原用户勾选的选项的:
在线实例
<input type="button" value="要保存到数据库中的值" onclick="get_save_value('hobby[]')"> <input type="button" value="清除勾选" onclick="clear_all('hobby[]')"> <br> <br>还原勾选框<br> <input type="text" name="set_check_value" id="set_check_value"><br> <input type="button" value='先点击 "清除勾选" 再点我' onclick="set_check('hobby[]', document.getElementById('set_check_value').value)"> <br> <script language="JavaScript"> /* 重点 */ //还原用户的选取项 function set_check(name, value){ var obj = document.getElementsByName(name); for(var i=0; i<obj.length; i++){ if( (obj[i].value & value) == obj[i].value ){ obj[i].checked = true; } } } /* 这不是重点 */ function get_save_value(name){ var obj = document.getElementsByName(name); var saveValue = 0; for (var i=0; i<obj.length; i++){ if (obj[i].checked){ saveValue += parseInt(obj[i].value); } } document.getElementById("set_check_value").value = saveValue; alert(saveValue); //这个就是要存到数据表里的值 } function clear_all(name){ var obj = document.getElementsByName(name); for (var i=0; i<obj.length; i++){ obj[i].checked = false; } } </script>我们来看看后端数据库是查询用户勾选项的:
假设我们 tableName 中的 hobby 字段是保存用户的兴趣爱好值
一个用户一第记录, 如果前面的例子成功记录到数据库中, 那么 tableName 中应该有一条 hobby==21 的值的记录.