- ベストアンサー
非同期のpagenateについて質問
- cakephpとjavascriptを使用して非同期のpagenate機能を実現しようとしています。具体的には、ページ遷移なしでデータを追加表示する機能を作成したいと考えています。
- 方法としては、cakephpのviewでjavascriptの関数を呼び出し、javascript側で非同期通信を行い、cakephpのcontrollerでページごとの値を設定し、再度javascriptで値を取得して表示するという流れを考えています。
- しかし、javascriptからphpの値を取得する方法がわかりませんでした。setではなくreturnを使用しても値を取得できませんでした。他にも実現方法があれば教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> どのようにしたらsetされた値をjavascriptから受け取る事が出来るのかがわかりません。 cakeをある程度触ってるみたいなので何となく分かってるとは思うけど、ctpファイルの書式がHTMLだからHTMLで表示されるわけです。 これをXMLやJSON形式で出力したら良いんですよ。 具体的な方法は「cakePHP JSON 出力」「cakePHP XML 出力」でググればいっぱい出てきます。
その他の回答 (2)
- foreach
- ベストアンサー率51% (43/84)
連投すみません。何が分からないのかがやっと見えました。 > setでなく、returnに変えましたが、取得できないままでした。 return で値を戻して受け取れるのはPHP同士においてだけです。 JavaScriptからPHPのメソッドを起動して直接的に値を戻すことは出来ません。 従ってAjax等を使って間接的にデータの受け渡しを行います。 下に書いた通り、cakePHPのCTPファイルの書式がHTMLだからHTMLで出力されるわけで 、これをXMLやJSONで出力してあげます。 ブラウザでそのURLを叩いたらXMLやJSONが直接表示される状態になれば良いです。 そのURLに上記(2)の非同期通信でアクセスしてXML・JSONを受信して処理します。
- foreach
- ベストアンサー率51% (43/84)
まさにそのままの手法で出来るのですが、 > setでなく、returnに変えましたが、取得できないままでした。 何がどう出来なかったのか?どうなるのが理想でそれに対して現状どういう状態なのか? それを書かないと何に困ってるのかさっぱり分かりません。
補足
分かりにくい説明で、申し訳ございません。 困っている点を、具体的に述べます。 controllerでsetした値を、viewで表示させたいのですが、今回はcontrollerをjavascriptから呼出しているため、setされた値をjavascriptから受け取る必要があります。 ですが、どのようにしたらsetされた値をjavascriptから受け取る事が出来るのかがわかりません。 解決方法をご存知の方、教えて頂けますでしょうか?
お礼
大変に遅くなりまして、申し訳ございません。 ご提示頂きました方法で、無事に解決することができました。