checkbox复选框全选批量删除
多选框全选实现批量删除
html代码
<body>
<form action="" method="post" name="FormName" onsubmit="return checkbox();">
<table >
<tr ><td><input type="checkbox" name="checkboxes[]" value="on" onclick="selectAll(this,'checkboxes')" /></td> <td>全选</td></tr> this代表windows窗口对象
<tr>
<td><input type="checkbox" name="checkboxes[]" value="2" /><td>游泳</td></td>
</tr>
<tr><td><input type="checkbox" name="checkboxes[]" value="1" /><td>绘画</td></td></tr>
<tr><td><input type="checkbox" name="checkboxes[]" value="4" /><td>跑步</td></td></tr>
</table>
<input type="hidden" id="getvalues" name="getvalues"/> 隐藏域传参数
<button id="batch-delete-btn">批量删除</button>
</form>
</body>
1.问题:怎么单击一个复选框实现全选
js代码实现
<script type="text/javascript">
function selectAll(obj, chk)
{
if (chk == null)
{
chk = 'checkboxes';
}
var elems = obj.form.getElementsByTagName("INPUT");
for (var i=0; i < elems.length; i++)
{
if (elems[i].name == chk || elems[i].name == chk + "[]")
{
elems[i].checked = obj.checked;
}
}
}
</script>
方法二:
function CheckAll()
{
var ele =document.getElementsByTagName('input');
for(var i=0;i<ele.length;i++)
{
if(ele[i].name=='checkbox[]')
{
ele[i].checked=document.getElementById("chkAll").checked;
}
}
}
2.怎么把选中的id通过action传给php进行处理
通过juqery获取所有选中的box的value值,赋给一个变量,同时设置一个隐藏域把变量赋给隐藏域的value,通过POST提交,使得php页面获取所有id值
<script type="text/javascript">
$(function(){
$('#batch-delete-btn').click(function(){
checked = [];
$('input:checkbox:checked').each(function() {
checked.push($(this).val());
});
$('#getvalues').val(checked); 给隐藏域设置属性
}) })
</script>
使用原生js获取
var compatibility = "",
input = document.getElementsByTagName("input"),
value;
for (var i = 0; i < input.length; i++) {
if (input[i].type == "checkbox") {
if (input[i].checked) {
value = input[i].value;
if(value!='on'){
compatibility += value + ",";
}
}
}
}
compatibility = compatibility.substring(0,compatibility.lastIndexOf(",")); 最后所有值拼接成的字符串
document.getElementById('getvalues').value=compatibility; 赋值给隐藏域
问题1.批量删除前判断是否有box选中
function checkbox() {
var checkboxs=document.getElementById('getvalues').value; 如果隐藏域value为空表示没有被选中,return false 组织表单提交跳转,否则再次确定是否删除,确定返回true 表单跳转处理
if(!checkboxs){
alert('请选择要删除的会员');
return false;
}else{
confirm('确定批量删除?');
}
}
为题2.如果直接选择全选按钮选中全部,则在返回的id中 第一个全选按钮返回值为on 所以需要把on 元素删除
on,6039,6038,6037,6036,6035,6034,6033,6032,6031,6030,6029,6027,6026,6025,6024
3.php页面对id元素处理
if(isset($_REQUEST['getvalues'])){ //批量删除会员
$str=$_REQUEST['getvalues']; 返回的为一个字符串,如上
$arrid=explode(',',$str); 拆分字符串,如果为直接全选删除第一个元素
if($arrid[0]=='on'){
array_shift($arrid);
}
foreach($arrid as $v){ 遍历元素直接删除,也可以不便利直接把字符串传进sql语句里 id IN(+'$str'+);
deleteUserById($v);
deleteIdentityApproveByUserId($v);
admin_log('会员信息删除-'.$v, 'edit', 'user');
}
showMsg('删除成功!','member.php?act=add','member.php?act=list');
}
checkbox复选框全选批量删除的更多相关文章
- jQuery 复选框全选/取消全选/反选
jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type ...
- js 复选框 全选都选 如果某一个子复选框没选中 则全选按钮不选中
<!DOCTYPE HTML> <html> <head> <meta charset=UTF-8> <title>js 复选框 全选都选 ...
- JavaScript小例子:复选框全选
JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...
- Jquery表格变色 复选框全选,反选
/*jquery静态表格变色*/ $(".tr2").mouseover(function(){ $(this).css("background"," ...
- 复选框全选、全不选和反选的效果实现VIEW:1592
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- html+css+js实现复选框全选与反选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- js 判断 复选框全选、全不选、反选、必选一个
一个挺 使用的 js 代码片段, 判断 复选框全选.全不选.反选.必选一个 记录下, 搬来的 思路: 修改数据的 选中与否状态, 拿到所有的输入框,看是否有选中的状态 <html> & ...
- jQuery实现复选框 全选、反选、全不选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- jQuery 前端复选框 全选 反选 下拉菜单联动
jQuery 页面中复选框全选.反选.下拉联动(级联) <!DOCTYPE html> <html lang="en"> <head> < ...
随机推荐
- 【模拟】Codeforces 699B One Bomb
题目链接: http://codeforces.com/problemset/problem/699/B 题目大意: N*M的图,*代表墙.代表空地.问能否在任意位置(可以是墙上)放一枚炸弹(能炸所在 ...
- sql server 查询日期中的常用语句, 例如本周第一天, 年内的第几周,有用
--本周第一天 SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate()) --or s ...
- ArrayList 、Vector、 LinkList
public class TestList { public static void init(List list) { if(list!=null) ...
- 衬衫面料品牌:Alumo_衬衫_男装_男装:衬衫、法式衬衫、袖扣领带、西服西裤等男士正装服饰-仕族官网
衬衫面料品牌:Alumo_衬衫_男装_男装:衬衫.法式衬衫.袖扣领带.西服西裤等男士正装服饰-仕族官网 衬衫面料品牌:Alumo
- 使用IntelliJ IDEA开发SpringMVC网站
连接:https://my.oschina.net/gaussik/blog/385697
- git上解决代码冲突
1.切换到master: git co master 2.拉最新代码:git pull origin master 3.删掉多余符号 4.切换到提交的分支:git br Txxxx 5.合并:git ...
- C++基础复习
1.Object-C也是面向对象的语言:2.#include<iostream> //#include是一个预处理指令3.using namespace std; //std是命名空间,u ...
- DateTimePicker控件为空 分类: WinForm 2014-04-15 09:46 239人阅读 评论(0) 收藏
设置属性: Format=Custom 加载事件:ValueChanged private void dtpStart_ValueChanged(object s ...
- Qt 学习之路:线程和事件循环
前面一章我们简单介绍了如何使用QThread实现线程.现在我们开始详细介绍如何“正确”编写多线程程序.我们这里的大部分内容来自于Qt的一篇Wiki文档,有兴趣的童鞋可以去看原文. 在介绍在以前,我们要 ...
- [置顶] UNIX常用命令
scp命令用于两个机器之前文件的拷贝 scp 被拷贝文件 远程机器用户名@远程机器IP:拷贝目的目录或者拷贝目录下的目的文件 dos2unix 在执行编译文件时,本来应该生成可执行文件a,但是执行完后 ...