2012-02-26 10 views
0

Imは必ずその何か簡単な、しかし、私は、AJAXリクエストの中から変数のデータを設定するように見えるカントは...AJAXコール内から変数を設定していますか?

私のサーブレットは、数字の配列を返します。

int[] array = {1,2,4,5,3,5,3,5}; 

    response.setContentType("application/json"); 
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(new Gson().toJson(array)); 

データは、私はjqueryの配列としてJSONデータを保存しようとしていますjqueryの、に渡されます。

var test2 = []; 
    $.post("servlet", { info: data}, 
       function(data) { 
        alert(data); // this alerts what i want stored... 
        test2.push(3); // testing if i can add 3 to test FAILS 
       }); 
    test2.push(9); //this works 
    test2.push(9); //this works 
    options.series[0].data = test2; 

なぜajax呼び出しでテストに数値をプッシュできないのですか?

私が望む最終結果はoptions.seriesを設定する[0]サーブレット

+0

私は 'test2'の変数宣言を見ません。これはタイプミスですか? –

+0

はい更新されましたthanks – Lunar

+0

'警告(データ)'がトリガーされていますか? –

答えて

1

プッシュが「失敗」しているとはどのように判断していますか?あなたのAJAXリクエストが非同期であるため、39の後に長く追加されることに注意してください。

var test2 = []; 
$.post("servlet", { info: data}, 
      function(data) { 
       alert(data); // this alerts what i want stored... 
       test2.push(3); // testing if i can add 3 to test FAILS 
       alert(test2) 
      }); 
+0

私はajaxリクエストの中でチャートコールを移動しました。 – Lunar

-2

によって返されたデータのアレイに.DATA等しい非同期で、完全なAJAX()関数を使用してみてください:偽。

var test2 = []; 
$.ajax({ 
    url: "servlet", 
    async: false, 
    type: "post", 
    data: { info: data}, 
    success: function(data) { 
       alert(data); // this alerts what i want stored... 
       test2.push(3); // testing if i can add 3 to test FAILS 
      }); 
}); 

EDITED:誤った文が削除されました。

+0

同期呼び出しを行うことは、ブラウザのUIをフリーズするため、一般的に悪い考えです。もちろん、Ajax呼び出しで変数を変更することもできます。 –

+0

彼はその変数を変更することができます、質問は彼がそれをチェックしているときです – Sinetheta

+0

ハァッ?非同期要求コールバックは魔法のように変数を変更できません。 –

-1

なぜあなたはちょうどそうのようなAJAX以内にあなたの変数を設定していない:

function(data){ 
    options.series[0].data=data; 
} 

はしかし、私はまた、能力に、実際の$.ajaxオブジェクトを使用することをお勧めします。

+0

"問題"を別の変数に移動するだけです。 –

関連する問題