多选框全选实现批量删除

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复选框全选批量删除的更多相关文章

  1. jQuery 复选框全选/取消全选/反选

    jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type ...

  2. js 复选框 全选都选 如果某一个子复选框没选中 则全选按钮不选中

    <!DOCTYPE HTML> <html> <head> <meta charset=UTF-8> <title>js 复选框 全选都选 ...

  3. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  4. Jquery表格变色 复选框全选,反选

    /*jquery静态表格变色*/ $(".tr2").mouseover(function(){ $(this).css("background"," ...

  5. 复选框全选、全不选和反选的效果实现VIEW:1592

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. html+css+js实现复选框全选与反选

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. js 判断 复选框全选、全不选、反选、必选一个

    一个挺 使用的 js 代码片段,  判断  复选框全选.全不选.反选.必选一个 记录下, 搬来的 思路: 修改数据的 选中与否状态, 拿到所有的输入框,看是否有选中的状态 <html> & ...

  8. jQuery实现复选框 全选、反选、全不选

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  9. jQuery 前端复选框 全选 反选 下拉菜单联动

    jQuery 页面中复选框全选.反选.下拉联动(级联) <!DOCTYPE html> <html lang="en"> <head> < ...

随机推荐

  1. 【贪心】Codeforces 704B & 705D Ant Man

    题目链接: http://codeforces.com/problemset/problem/704/B 题目大意: 给N个点,起点S终点T,每个点有X,A,B,C,D,根据I和J的X坐标可得I到J的 ...

  2. 【单调队列】Vijos P1771 瑞士轮 (NOIP2011普及组第三题)

    题目链接: https://vijos.org/p/1771 题目大意: 给定2N个人(N<=100 000)和其初始分数.能力值(能力两两不同),比赛M次(M<=50),每次PK都是按分 ...

  3. android关于图片缩放

    网上有许多关于图片缩放的demo,本人都感觉不怎么好用,最近在github看到了 一个简单的支持多指缩放图片的Android View类 gesture-imageview (地址:https://g ...

  4. hdu-1272 并查集

    Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...

  5. SRM 506(2-1000pt)

    DIV2 1000pt 题意:一个由n*m的网格组成的棋盘,有四种点,'.'表示空点,'#'表示是墙不能走,'$'表示起点(同样是空点),'1'~'9'表示该点有复活时间为t的怪兽.每次,可以从一个点 ...

  6. poj 1556 The door

    题目链接:http://poj.org/problem?id=1556 #include<cstdio> #include<cstring> #include<cmath ...

  7. Parameterized tests

    Parameterized继承自Suite.Parameterized是在参数上实现了Suite,修饰一个测试类,然后提供多组构造函数的参数用于测试不同场景. import java.util.Arr ...

  8. Java环境变量的配置及意义

    配置环境:Windows XP 首先是配置参数,这个网站上很多.很多网站上说要配置三个参数,即Path,classpath,JAVA_HOME三个.   简要的介绍一下这三个环境变量. Path使得系 ...

  9. apache POI 导出excel相关方法

    apache POI 操作excel无比强大.同时有操作word和ppt的接口. 下面讲解poi中常用方法. 1,设置列宽 HSSFSheet sheet = wb.getSheetAt(0); sh ...

  10. 统计学习导论:基于R应用——第二章习题

    目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...