close
文章出處

多條數據一同刪除,叫做批量刪除

 首先我們需要做一張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表,表中的內容可以隨便寫,當我們點擊全選時:

復選框的按鈕則全部選中,當再次點擊全選時,

選中則全部取消

我們再來看一下點擊刪除時,會彈出什么樣的對話窗

全部選中時,對話框會顯示全部選中者的代號

當選中第一個和第四個的時候,彈出的對話框也對應的顯示他們的代號,也就是主鍵值

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()