私は、MySqlデータベース内のいくつかの項目を削除するPHPスクリプトを実行するJQuery Ajax関数を持っています。このajax呼び出しは、ユーザーが特定のボタンをクリックするたびに行われます。呼び出しが完了し、削除されたアイテムが表示されないようにするには、ページをリロードする必要があります。しかし、PHPスクリプトが完成する前に「完了」機能が実行されているようです。したがって、ページはデータベース内の項目を削除せずにリロードされます。フォームは関係なく、ただのボタンです。これをどうすれば解決できますか?JQuery Ajax complete関数が即座に実行されます
<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();
}
});
});
ボタンのマークアップはどのように見えますか?明示的に型を指定せずに「送信」ボタンにしない場合、問題はフォームが送信されていることです。 – Pointy
PHPスクリプトに問題がある可能性があります。要求を手動で送信する場合は、それが動作しているかどうかを確認しましたか? –
'data:{data:data}'の 'data'はどこにありますか?関数 'XMLHttpRequest'を参照する' complete'の引数はなぜですか? – guest271314