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 |
全站熱搜