Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php+;无页面刷新的ajax_Php_Jquery_Mysql_Ajax - Fatal编程技术网

php+;无页面刷新的ajax

php+;无页面刷新的ajax,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在尝试更新我的users表中的一个状态-当用户单击一个按钮时,我使用ajax将其发送到php页面,但在响应时,页面会重新加载,因为我使用了`location.reload();。有没有办法让按钮在不重新加载页面的情况下更改其状态 按钮: <i data="<?php echo $row['id'];?>" class="status_checks btn <?php echo ($row['payment_status'])? 'btn-success' : 'btn

我正在尝试更新我的users表中的一个状态-当用户单击一个按钮时,我使用ajax将其发送到php页面,但在响应时,页面会重新加载,因为我使用了`location.reload();。有没有办法让按钮在不重新加载页面的情况下更改其状态

按钮:

<i data="<?php echo $row['id'];?>" class="status_checks btn <?php echo ($row['payment_status'])? 'btn-success' : 'btn-danger'?>"><?php echo ($row['payment_status'])? 'Paid' : 'Unpaid'?></i>   

echo$sql将返回0或1

您可以更新按钮的类,而无需重新加载

success: function(data)
        {   
           if(data == 1) // success
           {
             $('.status-checks').each(function(){
                if($(this).attr(data) == $(current_element).attr('data'))
                {
                   $(this).addClass('btn-success');
                   $(this).text('Paid');
                }
             })
           }else // failed
           {
             $('.status-checks').each(function(){
                if($(this).attr(data) == $(current_element).attr('data'))
                {
                   $(this).addClass('btn-danger');
                   $(this).text('Unpaid');
                }
             })
           }
        }
    });

必须将location.reload()替换为if and else语句,例如if(data)//按钮值更改else//按钮值不更改或其他语句


就是这样

而不是重新加载调整
div
的值或任何用于显示状态的元素,它工作但有错误。当您单击按钮更新时,首先更改状态,而不是按钮颜色,仅更改文本;当您第二次单击按钮时,它将不起作用,即更改状态;当它更改状态时,它将影响具有相同颜色的所有按钮。拜托,你认为可能是什么问题。它不起作用。请问你知道更好的解决办法吗?
<script type="text/javascript">
$(document).on('click','.status_checks',function(){
var status = ($(this).hasClass("btn-success")) ? 'Unpaid' : 'Paid';
var msg = (status=='Unpaid')? 'Unpaid' : 'Paid';
if(confirm("Are you sure to "+ msg)){
    var current_element = $(this);
    url = "update.php";
    $.ajax({
    type:"POST",
    url: url,
    data: {id:$(current_element).attr('data'),status:status},
    success: function(data)
        {   
            location.reload();
        }
    });
    }      
});
</script>
success: function(data)
        {   
           if(data == 1) // success
           {
             $('.status-checks').each(function(){
                if($(this).attr(data) == $(current_element).attr('data'))
                {
                   $(this).addClass('btn-success');
                   $(this).text('Paid');
                }
             })
           }else // failed
           {
             $('.status-checks').each(function(){
                if($(this).attr(data) == $(current_element).attr('data'))
                {
                   $(this).addClass('btn-danger');
                   $(this).text('Unpaid');
                }
             })
           }
        }
    });