4

$ .getを使用してPHPから応答を取得していますが、後でコードで使用できるように、応答を変数に格納するにはどうすればよいですか?ありがとう!

   $.get('promo_getstate.php', {
            email: emailaddress,
            country: 'DE',
            lang: lang,
            source: '1304_Spring_dly'
                }, function (data) {
                    console.log('data is' + data);
                    getstate = data;
                 }); 
4

4 に答える 4

5

設定したい変数を .get 呼び出し自体の外で宣言するだけです。その後、返されたデータに設定するコールバック関数内でアクセスできます。

var getstate = "";
$.get('promo_getstate.php', {
        email: emailaddress,
        country: 'DE',
        lang: lang,
        source: '1304_Spring_dly'
            }, function (data) {
                console.log('data is' + data);
                getstate = data;
             }); 
于 2013-03-22T18:53:56.553 に答える
0

$.get が機能する方法は、ブラウザが $.get の後の行も処理している間にデータを取得しているということです。

$document.ready(function() {
    var $HTML="";  //global variable
     $(".button").click(function(event){
         console.log('before $.get: ');
         $.get('form1.html #form1', function(data){
             $HTML = data;
             console.log('inside $.get: ' + $HTML);
         });
      console.log('outside $.get: ' + $HTML);
});

したがって、解決策は、$.get 値を必要とするすべてのコードを get ステートメント内に配置することです。
または、結果が返されて $.get コードが完了するまで待機させてから、次の行を処理することもできます。

于 2016-06-27T05:26:07.783 に答える
0

発信元の呼び出しの範囲外で割り当てにアクセスできることを確認する必要があります。

get リクエストの外で が宣言されていない場合getstate、それ以降の呼び出しでは使用できません。

問題は、いつ、またはどのような範囲でこのデータが必要になるかということです。

簡単に言えば、ウィンドウのスコープの下に置くだけです。すべてをグローバル スコープの下に置くのは悪い習慣ですが、これにより、どこに置くべきかがわかります。

console.log('data is' + data);
window.getstate = data;

window.getstateこれで、割り当てられた後はいつでも、または から利用できるようになりますgetstate

于 2013-03-22T18:49:01.197 に答える
0

最善の解決策は使用することです

setTimeout(function(){
            console.log('outside $.get: ' + $HTML);
}, 100);
于 2017-02-04T19:53:06.750 に答える