- ベストアンサー
formの複数action指定について
お世話になっております。 PHPにて、 Aページでフォーム情報を取得した後、 B→Cという流れだけではなく、 A→B→C A→D というページを作りたい場合、 Aにてformのactionを複数指定するという事は 出来るのでしょうか? Aの情報を保持したまま次ページにも渡したいので。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
察するに、Aページの手前で渡すinput nameをformNameと仮定して、 Aで取得した$_POST['formNme']を他ページ(BCD)でも参照したい。 という事でよろしいでしょうか? だとしたら、A.phpの初期処理で session_start(); session_register(pageData); $_SESSION['pageData'] = $_POST['formname']; とすれば、各PHP上で、 session_start(); echo $_SESSION['pageData']; で参照できると思います。
その他の回答 (4)
- shige1127
- ベストアンサー率58% (7/12)
#4です。echoはあくまでもサンプルで不要です(^^; しかし、session_registerについては、PHPのバージョンをご確認の上、 register_globals等についても調べられた方が後々良いかとは思います。(php.ini周り)
お礼
session_register指定でも 色々試してみた所、一部文字化けが 直ってしまいました。 PHPは簡単そうに見えて奥が深いものですね。 再度のご回答ありがとうございました。
- ebiku
- ベストアンサー率26% (41/157)
セッションを使えば出来ると思いますが。 見当違いでしょうか?
お礼
ご回答ありがとうございます。 ご回答頂きました通り、 セッション使いすぎだと思う程使いました。 セキュリティや排他処理などで問題が無いかどうか不安です。 これから色々テストしていきたいと思います。 >見当違いでしょうか? とんでも無いです。 ありがとうございました。
- moon_night
- ベストアンサー率32% (598/1831)
データの受け渡し先はひとつです。 A→B ただし、Bで受け取ったデータによって出力を変えることができますので、あなたが考えている動作をさせることは可能です。
お礼
ご回答ありがとうございます。 要件的には A→A A→B→C A→D の処理を想定していましたが、 途中でソースと脳みそが訳分からなくなってしまいましたので A→A・B→C A→A・D とまとめました。 仰る通り可能だと信じて頑張りました。 ありがとうございました。
- panda5555
- ベストアンサー率0% (0/4)
はじめまして、こんにちは。 複数ACTIONを指定することは、できません。 基本はFORMを分けることです。 それができない場合、 たとえば、押したボタンによって、 受け取ったCGIでどのボタンが押されたかを判定して、 リダイレクトする(または、表示内容を変える)等の 処理が筋が良い気がいたしまする。
お礼
はじめまして。 ご回答ありがとうございます。 >押したボタンによって、 >受け取ったCGIでどのボタンが押されたかを判定して、 >リダイレクトする(または、表示内容を変える)等の >処理が筋が良い気がいたしまする。 こちらのご意見参考にさせて頂きました。 どちらにしろ複数ACTION指定でも(出来ませんが) FORMを分けるにしても処理が煩雑になりがちなので、 上記のやり方がスマートですね。 ありがとうございました。
補足
皆様、色々ご回答ありがとうございます。 早速昼過ぎから色々試してみます。 またご報告いたします。
お礼
ご回答ありがとうございます。 セッションを使う事と要件を変更した事で うまく行きました。 一つ不思議に思ったのですが、 session_registerを指定しなくても セッション変数で値は取得できますが、 session_registerを指定する場合は acrion指定していない場合に 各PHP上で、echo $_SESSION['pageData']; を参照できるという意味でよろしいのでしょうか? お暇があればご返事頂けると有り難く思います。 ありがとうございました。