■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

ユーザー側表示画面でのデーターの受け渡し

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
baserCMS総合サービスサイト ビーコミ

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
引用:
ページ編集のソースコード内での記述ですが、
SESSIONだと値は受け取れるのですが、
POSTやGETだといなくなってしまいます(フォームで記載したときと同様)
どこかで受け取っているとは思うのですが・・・


cakePHPの規約にそった形で
$this->params['form']['xxx']

で受け取れると思いますよ〜。

一度、データを受け取っているページで
var_dump($this->params['form']);

すると、配列の中にPOSTデータが入っているのがわかると思います。(^^

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
7 人のユーザが現在オンラインです。 (7 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 7