- ベストアンサー
入力確認画面の表示について
- 入力フォームに入力した情報を入力確認画面で表示できる方法についての質問です。
- 現在、クレジットカードの選択情報が確認表示画面に表示されない問題に困っています。
- 質問者は、選択式の場合には仕組みが違うのか、確認画面に表示する方法を知りたいと述べています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
今思ったんですが。 そもそも「確認画面で選択肢がある必要はない」 ので、selectなしで、 直echoでよくないですか?どうせ、選べないんだし。。 ↑最終的にこれが一番正しい気がしてきた(w)
その他の回答 (3)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
参考演算子を使ってシンプルにループ部を <option value="<?= $index ?>" <?php $card===1? ' selected':''; ?>><?= $one ?></option>'; とまとめることもできます。 読みやすいと感じる方をどうぞ。 先ほどのサンプルvalueに$indexを入れるのを忘れてました^^
- Kemusu
- ベストアンサー率36% (55/150)
<option value="選択されていない">違う</option> <option value="選択されている" selected>こっち</option> という感じで選択されている場所にselectedを付与する形になります。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
もしかして最近私ばっかり回答してる? https://www.tagindex.com/html_tag/form/select.html このサイト中で重要な部分を抜粋。 <select name="example"> <option value="サンプル1">サンプル1</option> <option value="サンプル2">サンプル2</option> <option value="サンプル3">サンプル3</option> </select> 大事なのは「selected 値は不要 選択された状態を指定」この部分。 上のサンプルでは、値としても"サンプル1"が送られてますが、 これでは、バリデーションしにくいので <select name="card"> <option value="1">サンプル1</option> <option value="2">サンプル2</option> <option value="3">サンプル3</option> </select> としつつ $card=(int)$_POST['card']; /* 変数の有無チェックは別途やってください */ <option value="1">サンプル1</option> これを送り出すとき、 if ($card===1) echo '<option value="1" selected>サンプル1</option>'; else echo '<option value="1">サンプル1</option>'; のように、選んだものが「デフォルトになるようにする」でOKです。 実際には、どれもないとき先頭がONになることを利用して、 $card_list=[ "どれも選んでいないときの、名称", "カードの名前1", "カードの名前2", "カードの名前3", ]; とでもしておいて $card=(int)$_POST['card']; /* 変数の有無チェックは別途やってください */ $index=0; foreach ($card_list as $one) { echo echo '<option value="1"'; if ($card===$index) { echo ' selected'; } echo '>'.$one.'</option>'; $index++; } /* * 結局インデックスを回してる関係で、 * for ($index=0;$index<count($card_list);$index++) /// * これでも構わない。 * これを使わない理由は、count( )が相手が変化するものだった場合に、 * おかしくなるためで、今回は変化しないので、 * それほど気にしなくてもOKです */ これで、選んでいれば、それが出て、選んでいなければ、 先頭の「"どれも選んでいないときの、名称"」が表示されるので、 バリデーションチェックもしやすいかと思います。 0か?だけをチェックするだけで、selectで選んだかがわかるので。 後、この手の選択肢のファイルを別のPHPに入れて、 include や requireで共通化すればよいかと!。 →表示部と、確認部などで。 ちなみ、私書いてるの、わかりにくそうでしたら、指摘を!