PHP批量删除jQuery操作,Ajax异步请求案例

前言:

        之前在写Web作业的时候遇到了这么一个问题,就是如何实现多行删除,因为涉及的后台系统,这一个是非常关键的,但没很好的解决的异步和同步的问题,因此每次多行删除就像一个‘’梗“一样,怎么也迈不过去,记录下来。

前端部分:
 

我们编写一个 链接去跳转

<a onclick="del_more()"  class="btn btn-danger radius"><i class="Hui-iconfont">&#xe6e2;</i> 批量删除</a>

在JS 里通过调用del_more()

/*多行删除*/

    function del_more()

    {

        var ids=$(':checkbox');

           var str='';

           var count=0;

           for(var i=0;i<ids.length;i++){

            if(ids.eq(i).is(':checked')){

            str+=','+ids.eq(i).val();

             count++;

            }

        }

        var str=str.substr(1);

        //substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 处理我们第一个为,

        layer.confirm(

            '你确定要删除这'+count+'条数据吗?'+str,

            {btn : [ '确定', '取消' ]},

            function(){

            {

            $.ajax({

                 type:'get',

                 url:'../../php/admin/users_del.php',

                 data:{str:str},

                 success:function(msg)

                 {             

                       for(var i=ids.length-1;i>=0;i--)

                       {    

                        if(ids.eq(i).is(':checked'))

                        {

                         ids.eq(i).parent().parent().remove();

                        }

                       }    

                 }

                })

             layer.msg('成功删除共'+count+'条数据', {

                    time: 5000, //5s后自动关闭

                btn: ['明白了', '哦']

              });

               }}

               );

           return false;

    }    

其实这里存在一个JS与PHP交互的知识,

首先我们要区分好同步和异步的问题,因为在这个地方我们要去访问一个新的页面

如果我们采用同步,那么直接在新的页面上进行相应跳转即可;

Notes:

但如果我们用AJAX做异步处理的时候,Ajax访问新的页面后依然在等待新的页面传递消息给旧的页面,也只能在旧的页面做重定向

js 重新定向:

window.location.href="url";
这里的删除我们是异步进行操作,异步操作



$.ajax({

                 type:'get',

                 url:'../../php/admin/users_del.php',

                 data:{str:str},

                 success:function(msg)

                 {             

                       for(var i=ids.length-1;i>=0;i--)

                       {    

                        if(ids.eq(i).is(':checked'))

                        {

                         ids.eq(i).parent().parent().remove();

                        }

                       }    

                 }

                })

扫描二维码关注公众号,回复: 5181472 查看本文章

后端部分:

这时候我们对请求进行处理,用PHP编写

<?php

/**

* @Author: LYD

* @Date:   2018-11-17 12:52:11

* @Last Modified by:   LYD

* @Last Modified time: 2018-11-26 18:58:32

*/

    // 初始化一些数据

   require '../../config/config.php';//加载配置文件

    if ($_SERVER['REQUEST_METHOD'] == 'GET'){

         list($result,$affectTotal)=sign_del($dbc);

         $_SESSION["msg"] = ($result)? "删除了".$affectTotal."记录成功!" : "抱歉,删除失败";

        //redirect_to('admin/users_show.php');

         exit;

     }



?>

最后项目演示效果如下

猜你喜欢

转载自blog.csdn.net/qq_37457202/article/details/84638039