性格いい人が優勝

prototype.jsを使って送信して返ってくるデータを、
onCompleteの関数の中で「ret」に値を入れてると思うのですが、
出ててきたときにはalertで表示されません。
どうすればこの形でその関数の中の値を取り出すことができるのでしょうか?

function get_data()
{
ret = "";
new Ajax.Request(
"test.php",
{
method: "get",
parameters: "test=aaa",
onComplete: function(httpObj){
ret = httpObj.responseText;
}
}
);
alert(ret);
return ret;
}

A 回答 (1件)

確かAjax.Request()はデフォルトで非同期通信なので、


そのままではonComplete に指定した関数を実行する前に

alert(ret);
return ret;

が実行されてしまいます。

asynchronous: false オプションを追加してやればokです。

オプションの詳細なんかは参考URLでどぞ。

参考URL:http://www.imgsrc.co.jp/~kuriyama/prototype/prot …
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
なるほど、非同期から同期にするってことですね。
ただ非同期と同期の概念をまだあまり理解してないので
これからいろいろ試してみたいと思います。

お礼日時:2007/08/21 15:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!