-1

グローバル変数を使用して return 句を使用しようとしましたが、AJAX 関数を離れると変数は null のままです。

   http.onreadystatechange =  
     function() { if(http.readyState==4 && http.status==200) {
                        vQuantity = http.responseText;
                        alert(vQuantity);
                }
     }

アラート メッセージ (上記) は有効な値を示し、変数はグローバルですが、AJAX 関数を返すと値が null です。皆さん何かアイデアはありますか?ありがとう、マルコス。

AJAX ルーチンは問題ありませんでしたが、AJAX ルーチンの外部にロードされた (少なくともそうあるべきである) 変数を使用したいのですが、その変数は null です。

これどうやってするの?あなたの下に私のコードを見ることができます:

    <form><input type=hidden name="ElementoQuantidade"></form>

    function updateinsertAJAX(CodPagina) {
       var http;
       if (window.XMLHttpRequest) {
          http=new XMLHttpRequest();
       } 
       else 
       {
        http=new ActiveXObject("Microsoft.XMLHTTP");
       }

       var urlalvo = "updateinsertSQL.php";
       var compl = "?codpagina=" + CodPagina + "&t=";
       var randomize = parseInt(Math.random()*999999999999999);
       var modurl = urlalvo + compl + randomize;

       http.open("GET", modurl, true);

       http.onreadystatechange =  
         function() { if(http.readyState==4 && http.status==200) {
           var vqtde = http.responseText;
           document.getElementById('ElementoQuantidade').innerHTML = vqtde;
           }
           else
           {
            document.getElementById('ElementoQuantidade').innerHTML = "a lot of";
           }
       }
      http.send();
    }

本当はその変数vqtdeを使いたいのですが、AJAX関数の外で使うとその変数(vqtde)がnullになってしまいます。AJAX 関数内では、変数 (vqtde) に有効な値があります。

案内していただけますか?どうもありがとう、楽しい一日を。マルコス

4

2 に答える 2

0

関数から値を返さないのはなぜですか? アプリケーションが大きくなるとシャッフルで失われる可能性があるという理由だけで、必要でない限り、グローバル変数を使用しないことをお勧めします。

function yourFn(...) {
   ...do some stuff...
   return yourVariable;
}
于 2013-10-23T17:44:27.880 に答える