confirm對話框取消后阻止ajax操作、ajax做批量刪除


在做批量刪除的時候,需要用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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM