-3

以下は私が使用している機能です。

このように割り当てることができますか?

<script language="javascript" type="text/javascript">
    function validation(){

    var flag

    $.ajax({
      url: 'ajax/test.php',
      success: function(data) {

       flag =data;

      }
    });

    alert(flag);

    }


    </script>
4

1 に答える 1

1

割り当ては問題になりませんが、非同期 ajax 呼び出しが返される前に alert を呼び出しているため、 alerting undefined.

これを行う必要があります:

$.ajax({
  url: 'ajax/test.php',
  success: function(data) {
     alert(data);
  }
});

別の関数でフラグが必要な場合は、ajax 呼び出しが完了する前にこの関数が呼び出されないようにする必要があります。あなたはこれを行うことができます:

var flag;
function otherFunction() {
    alert(flag);
}  
$.ajax({
  url: 'ajax/test.php',
  success: function(data) {
     flag = data;
     otherFunction();
  }
});

JavaScript で理解する必要がある最も基本的なことの 1 つは、その非同期性に対応する必要があるということです。

これを行うには、コールバックを次のように指定します。

  • イベントハンドラ
  • すべてのリソース取得関数の成功またはエラー処理関数

これは、メインループや多くのスレッドを自分で管理するよりもはるかに簡単であることに注意してください...

于 2012-10-29T18:32:10.947 に答える