View Code

批量删除

多条数据一同删除,叫做批量删除

 首先我们需要做一张nation表,和之前得一样,连接数据库,表中是两列,代号和名称,行随便先加点,在最前面再给它加一列,加复选框,最上面一行写个全选的复选框,再在表下面放一个删除的按钮

<body>
<form action="piliangshanchu.php" method="post">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
   <td><input type="checkbox" id="qx"  onclick="xuanzhong()"/>全选</td>
  <td>代号</td>
  <td>名称</td>
</tr>
<?php
include("./fengzhuang1.php");
$db = new fengzhuang();
$sql = "select * from nation";
$attr = $db->Query($sql);
foreach($attr as $v)
{
    echo "<tr>
      <td><input type = 'checkbox' name='ck[]' class='ck' value='{$v[0]}'/></td>
      <td>{$v[0]}</td>
      <td>{$v[1]}</td>
    </tr>";
}
?>
</table>
<input type="submit" value="删除" onclick="return tishi()" />
</form>
</body>

和以前插入数据库的表是一样的,先把整体做出来,这里还要做js,一个是控制复选框的,另一个是点击删除按钮时,弹出的对话框,其实在删除后面直接添加一个onclick="return confirm('确定删除么')"    就可以,但是为了让它显示的更具体一点,我们采用js的方法,下面来看一下js部分的代码

<script type="text/javascript">
 function xuanzhong()
 {
     //取全选按钮的选中状态
     var zt = document.getElementById("qx").checked;
     //让下面所有的checkbox选中状态改变
     var ck = document.getElementsByClassName("ck");
     for(var i= 0;i<ck.length;i++)
     {
        if(zt)
        {
           ck[i].setAttribute("checked","checked");    
        }     
         else
         {
            ck[i].removeAttribute("checked");     
         }
     }
         
     }
     function tishi()
     {  //找所有选中项
        var ck = document.getElementsByClassName("ck");     
        var str = "";
        for(var i = 0; i<ck.length;i++)
        {
          if(ck[i].checked)    
          {
              str += ck[i].value+",";  
           }
        }
        return confirm("确定要删除以下数据么:"+str+"");
     }

</script>

既然要删除按键,就得有个from表单,把它提交到另一个页面

新建一个页面,里面只写php内容

<?php
$ck = $_POST["ck"];
include("./fengzhuang.php");
$db =  new fengzhuang();
/*foreach($ck as $v)
{
   $sql = "delete from nation where code='{$v}'";
   $db->Query($sql,0);    
}*/


//第二种方式
$str = implode("','",$ck);
$str = "('{$str}')";
$sql = "delete from nation where code in {$str}";
$db->Query($sql,0);
header("location:piliang.php");

 

两种方法都可以用,

第一种是用一个循环,每次找到个主健然后删掉,缺点就是要执行好多遍

第二种是用拼接字符串的形式

最后都是跳转到第一个页面

现在我们来看一下操作的效果

一个非常简单的nation表,表中的内容可以随便写,当我们点击全选时:

复选框的按钮则全部选中,当再次点击全选时,

选中则全部取消

我们再来看一下点击删除时,会弹出什么样的对话窗

全部选中时,对话框会显示全部选中者的代号

当选中第一个和第四个的时候,弹出的对话框也对应的显示他们的代号,也就是主键值

 

posted @ 2017-01-04 11:41  风中摇曳的小花朵  阅读(626)  评论(0编辑  收藏  举报