Javascript 使用jQuery在AJAX请求期间显示忙加载指示器

Javascript 使用jQuery在AJAX请求期间显示忙加载指示器,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有状态激活/取消激活按钮,当用户点击激活状态时,它会变成红色的取消激活,反之亦然 目前我可以更新我的状态@后端,但每次我都应该刷新以查看我的更改 我的要求是在改变状态的主动/非主动过程中,我想加载ajax图像加载器,加载器图像应该覆盖整个屏幕。我的状态应该在mysql数据库中更新 请给予任何帮助,谢谢 Php代码 <?php include 'db.php'; $sql = "select * from sections order by id asc"; $d

我有状态激活/取消激活按钮,当用户点击激活状态时,它会变成红色的取消激活,反之亦然

目前我可以更新我的状态@后端,但每次我都应该刷新以查看我的更改

我的要求是在改变状态的主动/非主动过程中,我想加载ajax图像加载器,加载器图像应该覆盖整个屏幕。我的状态应该在mysql数据库中更新

请给予任何帮助,谢谢

Php代码

<?php 
    include 'db.php';
    $sql = "select * from sections order by id asc";
    $data = $con->query($sql);
    $str='';
    if($data->num_rows>0)
    {
        while( $row = $data->fetch_array(MYSQLI_ASSOC))
        {
            $str.="
        "?>
        <div class="row">
            <div class="col-md-1">
            <?php 
                if ($row['status'] == '1') 
                { 
            ?>
        <a href="#" class="btn btn-success btn-sm active" ida='<?php echo $row['id'];?>'></a>
        <?php } 
        else if($row['status'] == '0')
        {
        ?>
        <a href="#" class="btn btn-danger btn-sm deactive" idde='<?php echo $row['id'];?>'></a>
        <?php } ?>
        </div>
        </div>
    <?php
        }
    }
    else
    {
        $str .= "<p style='text-align:left;'>No Data Available</p>";
    }
    echo $str;   
?>


尝试使用
$.ajax()


尝试使用
$.ajax()


尝试使用
$.ajax()


尝试使用
$.ajax()


尝试此脚本并进行所述更改:

变化:

  • 对于这两个操作,保持与
    数据id
    相同的属性
  • loaderElem
    将是应该存在于DOM中的加载程序容器
  • BODY
    只是一个
    BODY选择器
    ,只是为了避免多余的选择器
  • var-elem=$(此项)在成功回调后用作我需要的
    引用
  • 还要养成使用错误回调的习惯,因为您可能需要处理这种情况
  • var BODY=$('BODY');
    var loaderElem=$(“#loader”);
    主体.delegate('.active',click',函数(e){
    loaderElem.show();
    var IdStatus=0;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('active').addClass('deactive');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    主体.delegate('.deactive',click',函数(e){
    loaderElem.show();
    var-IdStatus=1;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('deactive').addClass('active');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    
    尝试此脚本并进行所述更改:

    变化:

  • 对于这两个操作,保持与
    数据id
    相同的属性
  • loaderElem
    将是应该存在于DOM中的加载程序容器
  • BODY
    只是一个
    BODY选择器
    ,只是为了避免多余的选择器
  • var-elem=$(此项)在成功回调后用作我需要的
    引用
  • 还要养成使用错误回调的习惯,因为您可能需要处理这种情况
  • var BODY=$('BODY');
    var loaderElem=$(“#loader”);
    主体.delegate('.active',click',函数(e){
    loaderElem.show();
    var IdStatus=0;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('active').addClass('deactive');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    主体.delegate('.deactive',click',函数(e){
    loaderElem.show();
    var-IdStatus=1;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('deactive').addClass('active');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    
    尝试此脚本并进行所述更改:

    变化:

  • 对于这两个操作,保持与
    数据id
    相同的属性
  • loaderElem
    将是应该存在于DOM中的加载程序容器
  • BODY
    只是一个
    BODY选择器
    ,只是为了避免多余的选择器
  • var-elem=$(此项)在成功回调后用作我需要的
    引用
  • 还要养成使用错误回调的习惯,因为您可能需要处理这种情况
  • var BODY=$('BODY');
    var loaderElem=$(“#loader”);
    主体.delegate('.active',click',函数(e){
    loaderElem.show();
    var IdStatus=0;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('active').addClass('deactive');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    主体.delegate('.deactive',click',函数(e){
    loaderElem.show();
    var-IdStatus=1;
    var elem=$(本);
    变量id=元素属性(“数据id”);
    $.ajax({
    url:“pages/status1.php”,
    数据:{
    状态:IdStatus,
    id:id
    },
    数据类型:“html”,
    成功:函数(){
    元素removeClass('deactive').addClass('active');
    loaderElem.hide();
    警惕(“成功”);
    }
    });
    e、 预防默认值();
    返回false;
    });
    
    尝试此脚本并进行所述更改:

    变化:

  • 对于这两个操作,保持与
    数据id
    相同的属性
  • loaderElem
    将是应该存在于DOM中的加载程序容器
  • BODY
    只是一个
    BODY选择器
    ,只是为了避免多余的选择器
  • var-elem=$(此项)在成功回调后用作我需要的
    引用
  • 还应养成使用错误回调的习惯,因为您可能需要处理错误回调
    <script type="text/javascript">
    $('body').delegate('.active','click',function(e){
    
        var IdStatus = 0;
        var id = $(this).attr('ida');
        $.ajax({
            url:"pages/status1.php",
            data:{
                status:IdStatus,
                id:id
            },
            dataType:'html',
            success:function()
            {
                alert('success');
            }
        });
        e.preventDefault();
        return false;
    });
    
    $('body').delegate('.deactive','click',function(e){
        var IdStatus = 1;
        var id = $(this).attr('idde');
        $.ajax({
            url:"pages/status1.php",
            data:{
                status:IdStatus,
                id:id
            },
            dataType:'html',
            success:function()
            {
                alert('success');
            }
        });
        e.preventDefault();
        return false;
    });
    </script>
    
    <?php 
        if(isset($_REQUEST['status']))
        {
        $status = $_REQUEST['status'];
        $id = $_REQUEST['id'];
        $sql = 'update sections set status='.$status.' where id='.$id.'';
        $result = mysql_query($sql);
        if($result)
        {
            echo 'updated successfully';
        }
        else
        {
            echo 'failed to update';
        }
    }
    ?>
    
    $('body').delegate('.active','click',function(e){
    
        var IdStatus = 0;
        var id = $(this).attr('ida');
        $.ajax({
            url:"pages/status1.php",
            beforeSend: function() {
              // do overlay stuff
            },
            data:{
                status:IdStatus,
                id:id
            },
            dataType:'html',
            success:function()
            {
                // remove overlay stuff
                alert('success');
            }
        });
        e.preventDefault();
        return false;
    });