- ベストアンサー
【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて
- HTML(PHP使用)に関する質問です。画像を使用して、複数のフォームと複数の実行ボタン(submit)の扱いについて教えてください。
- 質問内容は、クリックしたボタンによってPOSTで次のページに情報を送信する方法についてです。特に、一つ目のボタンは正常に送信できるが、二つ目のボタンは送信されないという問題が発生しています。
- 質問者は、javascriptを使用せずにPHPのみで実装する方法を知りたいとしています。フォームタグやPOSTの受け取り先に問題はないとのことです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 押されたsubmitがどれかによって処理を分岐させる方法を、 これのみであれば、要は ↓ みたいな事でしょうか? <? print_r($_POST); $me = $_SERVER[PHP_SELF]; print " <form action=$me method=post> <input type=text name=a value='え~'> <input type=text name=b value='びー'> <input type=submit name=SubmitA value='再検索'> <input type=submit name=SubmitB value='結果表示'> </form>"; if ($_POST[SubmitA]) { print "サーチ分岐"; // include "search.php"; } elseif ($_POST[SubmitB]) { print "リザルト分岐"; // include "result.php"; } ?>
その他の回答 (3)
- bm_hiro
- ベストアンサー率51% (200/388)
#3です。 画面を見る限り違うと思いますし、 かなり昔の事なもんで記憶が曖昧ですが、 一部の携帯電話では「一つのformには一つのsubmitしか存在してはいけない」みたいのがあって、 それで、ややこしい事になった事がありました。 今のPCのブラウザであれば、一つのformの中にsubmitが複数あっても大丈夫なはずです。
- kenken951
- ベストアンサー率33% (9/27)
#1の人のに補足して inputタグのtype="hidden"を利用して隠しフィールドを使って AとBが変更されたときに隠しフィールドに値をいれるJavaScriptを用意すればいいだけです。さほど難しい処理ではありません。 formは入れ子処理ができないのでこうするしか処理方法が内でしょう。
お礼
ありがとうございます。 javascriptを利用したページ作成の際には参考にさせていただきます。
- yambejp
- ベストアンサー率51% (3827/7415)
別フォームにしている時点でjavascript抜きでは無理。 同じフォームに入れればsubmitにつけたnameが送り先にわたります。 別フォームが前提ならjavascriptで処理してください。
お礼
一応javascript無しでどうにかなりました。 現時点ではjavascriptを使わなかったのですが、 javascriptが絡むページ作成で困ったことがあったらよろしくお願いします。
補足
大変遅くなりましたが、 フォームは <form action="searchresult.php" method="post" name ="searchres"> というフォームに変更し、ひとつだけにしました。 また、そのひとつのフォームにあの2つのsubmitを入れてあります。
お礼
ありがとうございました。 多少ゴリ押しながら、満足できる結果が返ってきました。 本当にありがとうございます。