ユーザー側表示画面でのデーターの受け渡し
shohei > ユーザー側表示画面でのデーターの受け渡し @ 2012/4/18 19:08 |
---|
こんばんは、初めて投稿させていただきます。
宜しくお願いいたします。 本来の使い方ではないと思いますが、 既存のページ管理機能にてページを3つ作成いたしました。 ページ1、ページ2、ページ3 ページ1に対してボタン2つ作成し、 どちらのボタンが押されたかどうかを判定して ページ2又はページ3に遷移させたいのですがその場合に ページ管理の本文中に以下のような形で書いた場合、 PHPだと遷移先の画面にてPOSTで受け取れ、 CakePHPだとコントローラで受け取れると思うのですが、 どこで受け取れるのでしょうか? (表示している部分のコントローラーが見つけられない?) すごく初歩的な質問かもしれませんが、 宜しくお願いいたします。 --------------------------------------- <form method="post" action="ページ2"> <input type="submit" value="詳細"> </form> --------------------------------------- |
goichi > Re: ユーザー側表示画面でのデーターの受け渡し @ 2012/4/18 20:49 |
---|
こんにちは(^^
他の方の回答も見てみないと分かりませんが、 ページ管理でページを作成する必要がないなら、 機能をプラグイン化してしまうとか、 /app/controllers/にコントローラーを追加して新しく機能を作るとか、 /app/webroot/内に通常のPHPファイル(cakePHPの規約ではない)を作って、 そこで処理するとかになると思います。 もし、ページ管理で作成したページ同士でPOSTした値の受け渡しをするのであれば、 結構、面倒な処理になるような気がします。 試したわけではないので(すみません)、いい加減な情報になりますが、 /baser/controllers/pages_controller.php の中にある、 「display()」という部分でビューの表示を処理していると思うので、 そこをカスタマイズすれば、思惑通りの結果にできるかもしれません。 (ちなみにbaserCMSのコアなファイル群があるbaserフォルダ内のファイルは、 /app/の同階層に同名で保存すれば、そちらを優先して読み込みますので、上記のファイルも /app/controllers/pages_controller.php としてカスタマイズした方が、今後のアップデートが安全に行えるかもしれません。) |
ryuring > Re: ユーザー側表示画面でのデーターの受け渡し @ 2012/4/18 22:03 |
---|
こんばんは。
プログラムができる方であれば、プラグインでフック処理を記述してもいいかもしれません。 beforeFilterや、beforeRenderあたりで受け取る事ができます。 また、ページ編集のソースコード内で、PHPのスーパーグローバル変数($_POST や $_GET)を利用するのも手かもしれませんね。 Twitter:@ryuring |
shohei > Re: ユーザー側表示画面でのデーターの受け渡し @ 2012/4/19 15:58 |
---|
早速のご回答ありがとうございます。
やはりページ管理で作成したページ同士でのデータの受け渡しは難しいですよね・・・ display()あたりをいじってみようかとも思ったのですが、 変に誤作動やバグの原因になっても困るので、プラグイン化する方向に進みたいと思います。 複数のパターンのご回答をいただきとても参考になりました。 ありがとうございました。 |
shohei > Re: ユーザー側表示画面でのデーターの受け渡し @ 2012/4/19 16:10 |
---|
早速のご回答ありがとうございます。
ページ同士でのデータの受け渡しは難しそうなので、 プラグインにて作成しようと思います。 プラグインのフック処理というものは知りませんでした。 早速調べてみたいと思います。 ページ編集のソースコード内での記述ですが、 SESSIONだと値は受け取れるのですが、 POSTやGETだといなくなってしまいます(フォームで記載したときと同様) どこかで受け取っているとは思うのですが・・・ 一旦プラグインで作成後に何とかできないか再検討したいと思います。 フック処理について早速調べて作業してみたいと思います。 ご回答ありがとうございました。 |
goichi > Re: ユーザー側表示画面でのデーターの受け渡し @ 2012/4/21 15:41 |
---|
引用:
ページ編集のソースコード内での記述ですが、 cakePHPの規約にそった形で
で受け取れると思いますよ〜。 一度、データを受け取っているページで
すると、配列の中にPOSTデータが入っているのがわかると思います。(^^ |