###前提・実現したいこと
phpを使って簡単な質問フォームを作りたいと考えています。
全部で三問くらいの質問をして、ユーザーの回答によって最終的に表示される内容を変えたいと考えています。
実装したい内容としては、
- 一つ目の質問に答える
- ユーザーが選んだ一つ目に答えた内容を表示しつつ、二つ目の質問内容を表示
- ユーザーが選んだ一つ目と二つ目の答えを表示しつつ、三つ目の質問内容を表示
- 最終確認としてユーザーが選んだ一つ目~三つ目までの答えを表示しつつ、今まで回答した内容に対応した最終的な答えを出す。
swichを使って地道にパターンを分けて実現させようと考えたのですが、自分で色々を試してみたもののユーザーが選択した答えを保持する方法が分からなくて行き詰ってしまいました。
phpの知識はほとんどなく、今回のフォームを作るために独学でちょこちょこと必要そうな部分だけかじった位なので、ソースも不細工な部分が多いと思いますが、お知恵を貸して頂ければ幸いです。
よろしくお願い致します。
###発生している問題・エラーメッセージ
選んだ答えが保持できない。
###該当のソースコード
<?php $select = $_POST['question']; $user_ans1; //回答した一つ目の答えを保持する用 $user_ans2; //回答した二つ目の答えを保持する用 switch($select): case '犬': ?> <?php $user_ans1 = $select; ?> <p>あなたが選んだのペットは【<b><?php echo $user_ans1; ?></b>】です。次の質問です。<br />理想の犬種は?</p> <form action="" method="post"> <input type="radio" name="question" value="大型犬" checked>大型犬<br> <input type="radio" name="question" value="小型犬">小型犬<br> <input type="submit" value="あと1問"> </form> <?php break; ?> <?php case '大型犬': ?> <?php $user_ans2 = $select; ?> <p>あなたが選んだのペットは【<b><?php echo $user_ans1; ?></b>】で、理想の犬種は【<b><?php echo $user_ans2; ?></b>】です。</p> <p>よってあなたにおすすめなのは、『<b>ゴールデンレトリバー</b>』です</p> <?php break; ?> <?php case '小型犬': ?> <?php $user_ans2 = $select; ?> <p>あなたが選んだのペットは【<b><?php echo $user_ans1; ?></b>】で、理想の犬種は【<b><?php echo $user_ans2; ?></b>】です。</p> <p>よってあなたにおすすめなのは、『<b>チワワ</b>』です</p> <?php break; ?> <?php case '猫': ?> <p>※割愛</p> <?php break; ?> <?php default: //最初の質問項目 ?> <p>あなたが飼うとしたらどちらのペットが良いですか?</p> <form action="" method="post"> <input type="radio" name="question" value="犬" checked>犬<br> <input type="radio" name="question" value="猫">猫 <input type="submit" value="次の質問"> </form> <?php endswitch; ?>
###試したこと
変数だけではなく、配列を作ってpushしてみたりもしましたが、上記のソースだと、二つ目の質問を答えた時に一つ目に答えた内容が出力されず、一つ目の答えが空の状態で出力されてしまい解決できませんでした。
↓こんな感じです。
////////////////
あなたが選んだのペットは【 】で、理想の犬種は【大型犬】です。
よってあなたにおすすめなのは、『ゴールデンレトリバー』です
////////////////
###補足情報(言語/FW/ツール等のバージョンなど)
今回質問させていただいたフォームの構築は、wordpressの個別ページを使って、この質問フォーム用にテンプレートを一つ追加して実装したいと考えています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/01 22:24
2017/01/01 22:50