- ベストアンサー
alertを出さないと、正常に動作しない
Javascript初心者です。 現在JavascriptからPHPにデータを送信して、PHP側でデータをjsonで送信し Javascriptで受取り、データを表示しようとしています。 以下、サンプルです。 var jsonData; function aaa(){ var jsonText = XMLHttpRequest(phpからのjson受取) eval('jsonData=' + jsonText ); } function bbb(jsonData){ alert(); //←不要なアラート alert(jsonData[0]); } window.onload = function SetUp(){ aaa(); bbb(jsonData); } bbb内の最初のアラートを出すと、次のアラートでちゃんとデータを表示するのですが、 bbb内の最初のアラートを出さないと、次のアラートでデータが表示されません。 この最初のアラートを出さずにデータを取得する方法はあるのでしょうか? よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
XMLHttpRequestオブジェクトのopenメソッドで、第3引数は何を渡しておられるでしょうか? 希望される動作でしたら、第3引数にfalseを渡して同期通信にしてみてください。 非同期通信だとデータの受信が完了する前に次の処理が実行されることになります。
その他の回答 (2)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
データの読み込みが完了してないのでは? XMLHttpRequestオブジェクトのデータ受信を完了を待ってからbbb()を実行するか、 同期通信にしてみてはいかがでしょうか。
- ANASTASIAK
- ベストアンサー率19% (658/3306)
bbb(jsonData);を function aaa(){ } の中に持ってきたらどうですか?