質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

207閲覧

2つのform から得られたPHPの変数を同時に保持したい

SSL

総合スコア9

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/06/21 05:12

前提・実現したいこと

2つのform から得られたPHPの変数を同時に保持したい

発生している問題・エラーメッセージ

片方を実行すると、もう片方の変数がリセットされてしまうようです。

該当のソースコード

<!DOCTYPE html> <html> <form action=test.php name="menu00" method="POST"> <button class="button1" type="submit" name="menu" value="menu01">menu01</button> <button class="button1" type="submit" name="menu" value="menu02">menu02</button> <button class="button1" type="submit" name="menu" value="menu03">menu03</button> </form> <form action=test.php name="contents00" method="POST"> <button class="button2" type="submit" name="contents" value="contents1">contents1</button>&nbsp; <button class="button2" type="submit" name="contents" value="contents2">contents2</button> </form> <?php if (!empty($_POST['menu'])){ if($_POST['menu']=='menu01'){ $menu='menu01'; } elseif($_POST['menu']=='menu02'){ $menu='menu02'; } elseif($_POST['menu']=='menu03'){ $menu='menu03'; } else{} } if (!empty($menu)){ echo $menu; } if (!empty($_POST['contents'])){ if($_POST['contents']=='contents1'){ $contents='contents1'; } elseif($_POST['contents']=='contents2'){ $contents='contents2'; } else{} } if (!empty($contents)){ echo $contents; } ?> </html>

試したこと

$_GETで同様の処理は実現できました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/21 05:19

リセットされてしまうのではなく、「送信されていないから、受け取れない」だけですが、大元の目的は何を目指していてこのような作りになっているのでしょうか?
SSL

2018/06/21 05:24

メニューを選択して、メニューから更に情報を入力して結果を表示させようとしています。このソースで、両方の変数を表示しようとした場合、どのように修正すれば良いでしょうか。
m.ts10806

2018/06/21 05:34 編集

HTML構成変わっても良いですよね?それだけの要件だとPOST送信する意味がありません。GETで良いです。
guest

回答2

0

ベストアンサー

投稿2018/06/21 05:21

k-fukuda

総合スコア219

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SSL

2018/06/21 05:32

ご回答、有り難うございます。確認してみます。
SSL

2018/06/21 05:43

実現できました。有り難うございました。
guest

0

変数が少ないならhidden で一緒に送るのもアリらしい。

<!DOCTYPE html> <html> <form action=test_form.php name="menu00" method="POST"> <button class="button1" type="submit" name="menu" value="menu01">menu01</button> <button class="button1" type="submit" name="menu" value="menu02">menu02</button> <button class="button1" type="submit" name="menu" value="menu03">menu03</button> <input type="hidden" name="contents" value="<?PHP if(!empty($_POST['contents'])){echo $_POST['contents'];} ?>"> </form> <form action=test_form.php name="contents00" method="POST"> <button class="button2" type="submit" name="contents" value="contents1">contents1</button>&nbsp; <button class="button2" type="submit" name="contents" value="contents2">contents2</button> <input type="hidden" name="menu" value="<?PHP if(!empty($_POST['menu'])){echo $_POST['menu'];} ?>"> </form> <?php if (!empty($_POST['menu'])){ if($_POST['menu']=='menu01'){ $menu='menu01'; } elseif($_POST['menu']=='menu02'){ $menu='menu02'; } elseif($_POST['menu']=='menu03'){ $menu='menu03'; } else{} } if (!empty($menu)){ echo $menu; } if (!empty($_POST['contents'])){ if($_POST['contents']=='contents1'){ $contents='contents1'; } elseif($_POST['contents']=='contents2'){ $contents='contents2'; } else{} } if (!empty($contents)){ echo $contents; } ?> </html>

投稿2018/06/21 06:58

SSL

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問