JQuery Ajax完整的功能立即执行

时间:2016-06-25 21:31:09

标签: javascript php jquery ajax

我有一个JQuery Ajax函数,它执行一个删除MySql数据库中某些项目的php脚本。只要用户单击某个按钮,就会进行此ajax调用。我希望在呼叫完成时重新加载页面,并且不显示已删除的项目。但是,“完整”功能似乎在php脚本完成之前执行。因此,页面重新加载而不删除数据库中的项目。没有任何形式,只需一个按钮。我该如何解决这个问题?

<button id="deleteButton">Delete</button>


$('#deleteButton').click(function(){

   $.ajax({
      url:'clearDatabase.php',
      dataType:"json",
      data:{data:data},       
      type:'POST',      
      success:function(data){       
           if(data=="0"){
              alert("stuff deleted");
           }
      },    
      complete: function(XMLHttpRequest, status) {            
                    location.reload();
      }
   });  


});

3 个答案:

答案 0 :(得分:1)

如果你的按钮是

<button id='deleteButton' >Click</button>

$('#deleteButton').click(function(e){
   e.preventDefault();// for not publish form

   $.ajax({
     url:'clearDatabase.php',
     dataType:"json",
     data:{data:data},       
     type:'POST',      
     success:function(data){       
       if(data=="0"){
          alert("stuff deleted");
          location.reload();//here you reload the page after the user close the alert
       }
  },    
  complete: function(XMLHttpRequest, status) {            
                location.reload();
  }
  });  


});

答案 1 :(得分:0)

如果要重新加载页面,为什么要使用ajax?只需将按钮变为标签:

<a href="clearDatabase.php?data=data">Click</a>

clearDatabase.php

//delete some items in databse
//then redirect to your page again

答案 2 :(得分:0)

我得到了它的工作。我将location.reload更改为window.location=window.location。我对Ajax比较新,我不知道为什么会这样。如果有人可以解释为什么会这样,那就太好了。