- ベストアンサー
AJAXでサーバーにある連想配列を取り出す
こんにちは。PHP学習者です。 ブラウザ上でAJAXを使って、サーバーにあるPHPで作ったデータファイルを取得する方法は知っていますが、連想配列を取得することは出来ますか? 今までは連想配列をわざわざテキストファイルに書き換えてからAJAXで取得していましたが、もし直接取得する方法があれば知りたいと思いました。 詳しい方、どうかよろしくご教授ください。お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 今はAJAXで配列を直接扱う方法があれば、それを知りたいです。 AJAXはブラウザとサーバの間でHTTPプロトコルを使ってデータの受け渡しをしますので、HTTPプロトコルで受け渡し可能なデータ形式でなければいけません。 配列を受け渡しするためにはデータをシリアライズ化しなければいめませんので、JavaScriptと受け渡しするにはJSONを使うのが一般的な方法で、他の形式を使いたければ独自にエンコード・デコード処理を作るしかありません。 独自の方式を使ったとしてもPHP側で5000件分のデータを処理するメモリ空間が確保出来なければ結果は同じです。 メモリ空間の問題をプログラム側の実装で回避するとしたら、一度に5000件まとめて送るのでは無く、500件ずつ10回に分けて受け渡しをするなどの工夫をするしかないでしょう。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
JSON形式で受け渡すのが一般的です。
お礼
早速にご回答を頂き、有難うございます。 書き忘れましたが、JSONも使ってみました。 しかし私が扱いたいキーと値の対は約5000件ぐらいあり、値の文字数は平均して1件英数字で50文字というサイズなので、上手く行きませんでした。 1000件ぐらいまではJSONで処理できたのですが。 PHP側でコンフィギュレーションを変えてJSONに使えるメモリー容量を確保する方法などもあるかもしれませんが、今はAJAXで配列を直接扱う方法があれば、それを知りたいです。
お礼
よくわかりました。 配列を直接送る方法がないということなら、取りあえず今までやってきた、いったんテキストファイルにしてからそれをAJAXで取得するという方法でやってみます。 自分で独自のコード形式を作れるようなスキルはまだありませんので、それが一番安全なようです。一方でJSONの限界をプログラミングでカバーできるようなアルゴリズムも調べてみたいです。 この件はこれで一応締めさせていただきます。 どうも色々と有難う御座いました。