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ランキング
-
バッチファイル 特定ウインドウ...
-
PDFを(htmlのように)無限に縦...
-
GASでスプレッドシートの一番上...
-
1枚の画像をクリックすると複数...
-
jQueryを使いformでsubmitした...
-
ワードでA3横の画面にして、文...
-
bxsliderで最初に縦に複数表示...
-
ダブルクリックと2回クリックの...
-
MMS機能とは
-
正規表現で、特定の文字列を含...
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
-
非同期通信で掲示板を作る際の...
-
非同期通信を使うタイミングが...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
Pythonを勉強する道のり
-
Pythonを無料(安価)で学ぶ方...
-
RPA(PowerAutomate)の実装について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajaxでhtmlを返して画面に描画…...
-
大量のデータを表として展開す...
-
Response.Write(変数)
-
ローカルネットワーク内での502...
-
【Ajax】改行を含めたデータを...
-
AjaxでDBと連携した動的リスト...
-
Ajaxで最新の情報が取得できない
-
Ajax、PHP、MySQLでDBからデー...
-
Rを使う際、データを読み込む時...
-
セレクトボックスのHTMLを教え...
-
JavaScript側でのXML作成の方法
-
Jqueryのキャッシュについて
-
CGI→AJAXへ配列の受け渡しは可...
-
jQueryの$.postの戻り値による...
-
【struts】2つのselectの連動
-
jquery serializable値取得
-
getJSONで受け取れるよう出力す...
-
googleマップにajax
-
python pandas ビックデータ解...
-
innerHTMLで表示完了後に、Ajax...
おすすめ情報