質問: jqueryの$.postの戻り値による条件分岐 jqueryの$.postにてphpファイルをリクエストしています。 ajax→phpの処理後、ajaxに処理が戻る際にphpからajaxに 値を受け渡し、さらにその値によってajaxの処理を条件分岐させたい場合 どのような記述になるのでしょうか。 phpからの戻り値は単なるテキストかtrue/falseで考えています。 それとも、そもそも$.postでは戻り値を処理する、 といった事はできないのでしょうか。
回答: > なお、例えば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 なんかが参考になるでしょうか。