テーブルにデータを送信するモーダルダイアログフォームがあります。送信の成功/失敗に関するフィードバックをユーザーに提供したいのですが、成功ハンドラーが起動していません。
私のコードは
$.ajax({
type: "POST",
url: "includes/phpscripts.php?action=submitWiki",
data: {"name": location, "location": locationName, "text": locationText, "user": userId},
beforeSend: function(x){
if (x && x.overrideMimeType){
x.overrideMimeType("application/json;charset=UTF-8");
}
},
async: false
}).done(function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
});
別のバージョンでは、if/elseブロックが次のようにdone
定義されていました
success: function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
}
Firebugでは、リクエストからの戻りがechoステートメントによるものであることがはっきりとわかりますsuccess
が、success関数はスキップされています。行に直接ブレークポイントを設定しましたdone
が、すべてスキップされます。
さらに、投稿はデータベースに記録されています。