在做批量刪除的時候,需要用confirm彈出一個提示框讓用戶確認是否刪除,點擊確定,執行操作,點擊取消,取消操作。但是如果使用ajax把選中項的主鍵值傳到處理頁面處理時,如果使用下面的方法將confirm直接寫在按鈕里面,在點擊取消后,ajax會繼續執行操作,刪除選中項。
1.confirm錯誤寫法:
<button type="button" onclick="return confirm('確定刪除選中項嗎!')" id="piliang" class='btn btn-primary btn-lg' data-target='#myModal'>批量刪除</button>
2.可以用下面的方法將confirm寫在js里面,可以避免這個問題。
(1)按鈕代碼
<button type="button" id="piliang" class='btn btn-primary btn-lg' data-target='#myModal'>批量刪除</button>
(2)js代碼
$("#piliang").click(function(){
var statu = confirm("確認刪除選中項嗎!");//在js里面寫confirm,在頁面中彈出提示信息。
if(!statu)//如果點擊的是取消
{
return false;//返回頁面
}
else{//如果點擊確定,就繼續執行下面的操作
var attr = new Array();//建立一個數組
$(".qx").each(function() {//each循環遍歷出所有的復選框
if($(this).prop("checked")) //判斷被循環的.ck是否被選中
{
attr.push($(this).attr("value")); //去value的屬性取到該項數據的主鍵值,扔到數組attr里面
}
});
var stra = attr.join("','");//把attr數組里的lie[0]用 ',' 拆分
$.ajax({
url:"../chuli/deletepiliang.php",
data:{stra:stra},//把拆分后的數組傳到處理頁面,數據的格式為 主鍵1','主鍵2','主鍵3 這里看似少了最外面的2個'',帶着這個疑問去看處理頁面
type:"POST",
dataType:"TEXT",
success: function(data){
window.location.href="guanliry.php";
}
});
}
})
3.處理頁面deletepiliang.php
<?php session_start(); include("../libs/DBDA.php"); $db = new DBDA(); $attr = ($_POST["stra"]);//取傳過來的選定的主鍵值 $sql = "delete from jx_user where uid in('{$attr}')";//把上面的缺少最外面的''的字符串放到這里,('{$attr}')中的{$attr}就是拿過來的字符串,外面的''正好彌補了缺少的''。 $db->query($sql,0);
