• 批量删除


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

     首先我们需要做一张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表,表中的内容可以随便写,当我们点击全选时:

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

    选中则全部取消

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

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

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

  • 相关阅读:
    "无法在证书存储区中找到清单签名证书"的解决办法
    Windows消息ID说明
    ToolBar来的是什么事. (ToolBar 难见的Bug)
    SQL Tips 收集常用的SQL
    郁闷的内存泄露,增加TmfEditFormCmptMgr.OnDstMainSetFieldData惹的祸
    FormDestroy和Destroy中选其一个使用.
    一步步教你优化Delphi字串查找(转载)
    利用SQL建立数据库对象
    数据字典ChangeName引发的问题.
    测试Live Writer
  • 原文地址:https://www.cnblogs.com/qishuang/p/6245625.html
Copyright © 2020-2023  润新知