No.2ベストアンサー
- 回答日時:
> なお、例えばPHPから配列データをAjaxに返す場合
> それをAjaxで参照するとなると、どのようになるのでしょうか。
Ajax では、基本的には「テキストデータ」でしかデータのやりとりは出来ません。
そのため、PHP 側で配列データをテキストデータに変換し、JavaScript側でテキストデータを配列データに戻す、といった処理が必要になります。
元々、その「テキストデータ」フォーマットとしては XML が想定されていたのですが(AjaxのX)、複雑でオーバーヘッドが大きいので、最近はJSONが使われる場合が多いです。
http://gihyo.jp/dev/feature/01/jquery-ajax/0002
PHP側については、PHP 5.2.0 以降なら、json_encode で、配列をJSON形式に変換できます。
http://php.net/manual/ja/function.json-encode.php
jQuery の Ajax ライブラリは、JSON に対応していますので、
$.post の第4引数を"json"にしておけば、
PHP側でJSON形式に変換した配列データを、
JavaScript側の$.post のcallback内では、引数 data がそのまま配列としてアクセス出来るようになります。
jQueryとPHP のJSONによる受け渡し例は、
http://www.rottel.net/kuwa/44111
なんかが参考になるでしょうか。
No.1
- 回答日時:
$.ajax で、引数 async を false にしてリクエストを発行すれば、
関数呼び出し後に、リクエスト結果に基づいた条件分岐は可能です。
http://semooh.jp/jquery/api/ajax/jQuery.ajax/opt …
ただし、リクエストを発行したあと、応答が戻ってくるまで
スクリプト動作が止まってしまうため、操作性の問題からは
あまりオススメできません。
できれば、その処理そのものはそこで終わらせておき、
続きは $.post の callback内に記述すべきでしょう。
---ここから---
$.post("test.php",arg, function(data, status) {
// 通信成功後の処理
if (data == "true") {
PHP出力が「true」だった時の処理
} else {
そうでない時の処理
}
続きの処理
}, "text");
// ここから下には何も書かない。続きは上述のコールバック内に書く
---ここまで---
といった感じで。
この回答への補足
有り難うございます。
仰るとおりコールバックで実現できそうです。
なお、例えばPHPから配列データをAjaxに返す場合
それをAjaxで参照するとなると、どのようになるのでしょうか。
引き続き教えて頂けますと助かります。
宜しくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP 「teratail」での回答内容がいまいちわかりません。 1 2022/09/10 05:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを表として展開す...
-
Ajaxで最新の情報が取得できない
-
ajaxでhtmlを返して画面に描画…...
-
【JavaScript】confirmのボタン...
-
呼び出し元のURLを知りたいのです
-
ソースのリンク先などの暗号化...
-
saved from url=(0013)abou
-
AJAX通信が終わるまで次の処理...
-
HTMLでDBからデータを表形式で...
-
DirectXとOpenGLはどちらが動作...
-
PHPにコネクションプールってあ...
-
OVERLAPPED構造体が分かりませ...
-
ASP.NET 動的に行を増やすTable
-
PHPでフォームの自動入力できま...
-
htmlからhtaへのリンク
-
windows11ではアンドロイドアプ...
-
ASP.netで作成したシステムのip...
-
テキストファイルの内容を変数...
-
Ajaxでsessionにいれた値が引き...
-
php ob_flushが全く動作しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Response.Write(変数)
-
jQueryの$.postの戻り値による...
-
JavaScript側でのXML作成の方法
-
【Ajax】改行を含めたデータを...
-
データ受け渡しについて
-
大量のデータを表として展開す...
-
innerHTMLで表示完了後に、Ajax...
-
HTMLでリアルタイムグラフを作...
-
CGIカレンダー
-
AjaxでDBと連携した動的リスト...
-
JavaScriptだけで画像アップロ...
-
TCPクライアントサーバプログラ...
-
チャットを作る
-
ajaxでhtmlを返して画面に描画…...
-
Ajaxで最新の情報が取得できない
-
ajaxによるcsvデータの絞り込み...
-
カウントダウンを表示
-
ローカルネットワーク内での502...
-
CGI→AJAXへ配列の受け渡しは可...
-
【jQuery】2つのデータから、I...
おすすめ情報