我有一个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();
}
});
});
答案 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比较新,我不知道为什么会这样。如果有人可以解释为什么会这样,那就太好了。