AJAX實現彈窗顯示詳情,全選和批量刪除


以Nation表為例,將Nation表顯示在頁面上,每一行數據前面加上復選框,后面加上查看詳情,點擊以彈窗形式顯示每一行的數據,並且在表格最后一行加上全選復選框,點擊選中全部數據,后面跟一個批量刪除按鈕,點擊刪除選中項,如圖:

主頁面:需要用到彈窗插件,將js與css文件加載過來

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="../jquery-1.11.2.min.js"></script>
<script src="../tanchuang/tanchuang.js"></script>

<style type="text/css">
.xq{ width:80px; height:30px; background-color:#06C; line-height:30px; color:#FFF;}
.xq:hover{ cursor:pointer; background-color:#F60; color:#FFF;}
</style>
<link href="../tanchuang/tanchuang.css" rel="stylesheet" type="text/css" />
</head>

<body>
<h1>Nation表</h1>
<table id="biao" width="800px" border="1" cellpadding="0" cellspacing="0">

</table>

</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    
    Show();
    function Show()   //將各個事件放到一個方法里,這樣調用這一個方法就可以加上各個事件了
    {        
        $.ajax({
            async:false,
            //url:"testchuli.php",
            url:"ChuLi1.php",
            data:{type:0},     //將三個處理頁面放入一個頁面,需要傳一個參數type
            type:"POST",
            dataType:"JSON",
            success: function(data){
                var str= "<tr height='30px'><td>民族代號</td><td>民族名稱</td><td>查看詳情</td></tr>";
                for(var k in data)
                {
                    str+="<tr><td><input type='checkbox' value='"+data[k][0]+"' class='ck' />"+data[k][0]+"</td><td>"+data[k][1]+"</td><td><div class='xq' bs='"+data[k][0]+"'>查看詳情</div></td></tr>";    
                }
                str+="<tr height='30px'><td colspan='3'><input type='checkbox' id='qx' /> 全選 <input type='button' id='btn' value='批量刪除' /></td></tr>";
                $("#biao").html(str);
                }              
            });    
    
    //查看詳情
    $(".xq").click(function(){
        //取主鍵值
        var code = $(this).attr("bs");
        $.ajax({
            //url:"xqchuli.php",
            url:"ChuLi1.php",
            data:{code:code,type:1},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                
                var lie =data.split("^");
                var html = "<div>民族代號:"+lie[0]+"</div><div>民族名稱:"+lie[1]+"</div>";
                
                var win = new Window({
                
                width : 400, //寬度
                height : 500, //高度
                title : '詳細信息', //標題
                content : html, //內容
                isMask : true, //是否遮罩
                buttons : "", //按鈕
                isDrag:true,  //是否移動                
                });                
                }            
            });
        })
        
    //全選
    $("#qx").click(function(){
        //全選按鈕選中狀態,索引0取document對象
        var xz = $(this)[0].checked;
        //操作所有復選框的選中狀態
        var ck =$(".ck");        
        ck.prop("checked",xz);        
        })
        
    //批量刪除
    $("#btn").click(function(){
        //找選中的主鍵值,用循環遍歷選中的主鍵值
        var ck =$(".ck");
        var str ="";
        for(var i=0;i<ck.length;i++)
        {
            if(ck.eq(i).prop("checked"))
            {
                str+=ck.eq(i).val()+"','";    
            }    
        }
        str= str.substr(0,str.length-3);  //分隔符占3個字符,截取字符串,去掉最后的"','",這樣正好匹配SQL語句
        
        $.ajax({
            //url:"Delete.php",
            url:"ChuLi1.php",
            data:{str:str,type:2},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                alert(data);
                
                Show();                
                }            
            });        
        })
} });
</script>

將顯示數據,查看詳情與批量刪除三個處理頁面合成一個頁面,只需傳一個參數type:

<?php
include("../DB.class.php");
$db = new DB();
$type = $_POST["type"];
//用switch case比if else清晰
switch($type)
{
    case 0:
        $sql  ="select * from Nation";
        echo $db->JsonQuery($sql);
        break;
    case 1:
        $code = $_POST["code"];
        $sql = "select * from Nation where Code = '{$code}'";
        echo $db->StrQuery($sql);
        break;
    case 2:
        if(!empty($_POST["str"]))
        {
            $str = $_POST["str"];
            $sql = "delete from Nation where Code in ('{$str}')";    
            //echo $sql; 輸出SQL語句看是否正確
            if($db->Query($sql,1))
            {
                echo "刪除成功!";    
            }
            else
            {
                echo "刪除失敗!";
            }
        }
        else 
        {
            echo "請選擇要刪除的項!";    
        }
        break;
    default:
        echo "";        
}

 

 


免責聲明!

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



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