.done .fail および .always を ajax 呼び出しにアタッチできるようになりました。スクリプトが HTML ページの下部にある場合は「簡単」です。
ここで、ヘッダーに js ファイルを含めるだけで使用できる一般化された ajax 関数を作成したいと考えています。サーバーからデータを読み取る ajax 関数で成功しました (.done は常に機能します)。サーバーにデータを書き込んだり更新したりするだけで問題が発生します (データが返されません)。詳細は次のとおりです-
常に機能する標準の ajax 追加/更新呼び出し - ページの下部にあるスクリプト タグ内。
$.ajax({
type: 'POST',
url: 'supdateajaxfunctiontestbackend.php',
data: {localid: localid,
firstname: firstname,
lastname: lastname}
}).done(function(){ alert('Done with Add/Update!'); });
ページの下部に関数を作成するか、関数を js ファイルに追加すると、この追加/更新は常に機能します。
function generalWriteAjax(filetocall, datatosend) {
$.ajax({
type: 'POST',
url: filetocall,
data: datatosend
}).done(function(){ alert('Done with Add/Update!'); });
}
関数から .done を切り離し、別の関数/オブジェクトにアタッチされたときに .done を呼び出したいと思います。次のコードは、サーバーからデータが返された場合に正常に機能します。(サーバー データを要求する個別の generalReadAjax 関数)。完了は、サーバーから返されるオブジェクトに添付されます (この概念は Stackoverflow で見つけました)。
backenddata = generalReadAjax('readtesttablebackend.php');
displayData(backenddata);
backenddata.done(function(){ alert("Done with read!"); });
});
WRITE/UPDATE のみの機能で次のすべてを試しましたが、どれも機能しません。
generalWriteAjax(filetocall4update, datatosend4update).done(function(){ alert('Done function'); });
generalWriteAjax(filetocall4update, datatosend4update).when(function(){ alert('Done function'); });
generalWriteAjax(filetocall4update, datatosend4update).then(function(){ alert('Done function'); });
generalWriteAjax(filetocall4update, datatosend4update);
createdonealert = generalWriteAjax(filetocall4update, datatosend4update);
createdonealert.done(function(){ alert('Done function'); });
createdonealert.when(function(){ alert('Done function'); });
createdonealert.then(function(){ alert('Done function'); });
したがって、明らかに、「データを取得してください」と「ここにデータがあります。保存してください」の間では、プロミスの処理方法に違いがあります。
何かを返すためだけにアップデートphpファイルの一番下にさえ入れましたecho "Done";
が、まだ運がありません。
このサイトとグーグルを次の組み合わせで検索しました。
ajax .done attach add update が機能しないという約束
私の特定の例を扱っているものは何も見つかりませんでした。
誰かが私にいくつかのガイダンスを与えることができますか?
よろしくお願いします。