0

.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 が機能しないという約束

私の特定の例を扱っているものは何も見つかりませんでした。

誰かが私にいくつかのガイダンスを与えることができますか?

よろしくお願いします。

4

1 に答える 1