- ベストアンサー
PHPでメールフォームのプルダウンメニューの内容を確認画面で表示させる方法
- PHPを使用して作成したメールフォームにおいて、プルダウンメニューの内容を確認画面で正しく表示させる方法について教えてください。
- フォームの段階でプルダウンを作成していますが、確認画面でフォームの内容(プルダウンの項目)を表示させようとしたときに、正しい日付が表示されず、例えば「1年4月1日」と表示されてしまいます。
- 具体的に、フォームの内容を受け取るスクリプトと確認画面に表示するスクリプトの記述方法を教えていただけると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No2です print '<option value="' . $i . '">' . $i . '</option>' . "\n"; これを print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; このようにする。 ちなみにsprintf("%04d",$i)は、「4桁に揃えなさい」という意味なので、当然月、日は、sprintf("%02d",$i)となる訳です。
その他の回答 (3)
- hk_java2
- ベストアンサー率44% (8/18)
optionタグに囲まれた部分がブラウザで表示される部分になります。 <option value="xxx">XXX</option> ならXXXが表示されます。 No.2さんの回答をもとに表示部分も変換してやれば良いでしょう。
- maenet1972
- ベストアンサー率68% (26/38)
プルダウン画面はいいとして、問題なのは受け取り側、、、 まぁ単純に、POST['year']、$_POST['month']、POST['day']でそのまま受け取り、sprintf()を使って桁を揃えにしてしまいましょう。 $year = isset($_POST['year']) ? sprintf("%04d年",$_POST['year']) : NULL; $month = isset($_POST['month']) ? sprintf("%02d月",$_POST['month']) : NULL; $day = isset($_POST['day']) ? sprintf("%02d日",$_POST['day']) : NULL;
お礼
ご回答有難うございます。 確認画面にて1980年01月01日と表示されました。 プルダウンにてこのような表示は無理なのでしょうか? 初心者なものですので、よろしくお願いいたします。
- rukuku
- ベストアンサー率42% (401/933)
こんばんは PHPは使ったことはありますが、私自身が初心者で、手元に参考資料も内のであまりお役に立てないかもしれませんが、 1.1990年→1年 プログラムのミスだと思います。プルダウンで表示された値ではなく、「何番目」を拾っていませんか? 2.04月10日 ExcelでいうText関数(VBAではFORMAT関数)と同じ機能が確かあったと思います。 初心者(今年の4~5月のPHP第1作、間が開いて、先月下旬から2作目を制作中)の身の私は言うのも何ですが、以前で年・月を扱いましたが、もっと簡単にできました。 >またセッションも使用しております。 セッションはどのようなものか分かりませんが、そのようなものを使わずに、何年のプルダウンと、何月のプルダウンを指定したら、データーベース(Postgresqlを使いました)から年月日のデータが入っているフィールドを検索して該当する年月のレコードを抽出するプログラムを組みました。 そのような経験から、プログラム自体をもっと簡略化出来るのではないかと思います。
お礼
有難う御座います。 できました。 また、いろいろと勉強になりました。 本当に有難う御座います。