- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpのセレクトボックスの配列について)
phpのセレクトボックスの配列について
このQ&Aのポイント
- phpのセレクトボックスの設定で配列を使用する方法について質問させていただきます。
- 配列で設定した場合のセレクトボックスの初期値についての方法がわからず困っています。
- 配列での選択値をPOSTした場合において、POST先でのDB処理で正しい値が渡されない問題が発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 一つ一つクリアしていけばいいと思います。 まず // 配列の値 $time = array・・・・ $minute = array・・・ となっているのに forの中では$time_array[$a]を参照しているのは質問の際の転記ミスですか? 次に$start_time[$j]とありますが$jは何をしている変数でしょうか? 実際、画面上にechoしてみて自分が想定する値が表示されていますか? ループの中でecho $time_array[$a]とecho $start_time[$j]を表示して比較状況を見てみてください。 次に<select>の間に生成したoptionを表示しようとしていますがこの生成されたHTMLが想定通りか確認してください。 $dayが2014年9月1日の1だったとした場合 <select name="start_time1"> <option value="0">0</option> ・ ・ ・ <option value="23">23</option> </select> となっていますでしょうか。 >POSTした値がまともに渡されていません >POST先でDB処理を想定しているのですがdate型だとすべて[00:00:00]になってしまいます。 まともに渡されていないだと何が起きてるかわかりません。 送信されていないのか送信された内容が取得できていないのか送信されて取得もできているけど想定した値ではないのか切り分けてください。 冒頭にも述べましたが一つずつクリアしていくのが近道だと思います。
お礼
回答ありがとうございます。 1つ1つ切り分けて考えることで怪しい個所に 気づけました。 登録するデータ自体が想定していたのと少し違ったのが原因でした。 あとは初期表示の表示が怪しいのでそこを調べてみます。 ありがとうございます。
補足
回答ありがとうございます。 転記ミスや不足しているみたいでした。すみませんでした。 配列の値は転記ミスです。forの中の値が正しいです。 for文の解説も不足していました。DBから値を取得して($start_time[$j]が取得値で[$j]は取得値を順番に示しています) echoも想定通りに取れていてfor文の処理も想定通りに セレクトボックスの選択値が配列で表示され初期表示もできています ループの比較も想定通りに比較できていると思います。 HTMLが想定通りに生成されているかということはセレクトボックスの値がoption valueで一行ずつ生成した時と同じに作成されているかということでしょうか。 その場合ですと同じように生成されていて選択できるようになっています。 DB処理部分ですがPOST値をechoしてみると選択した値が想定通りに表示されるのですがDBに登録されている値がおかしいようです [01:00:00]と入力した値がDBだと[838:59:59]と登録されています この場合、セレクトボックスの初期値は[00:00:00]と表示されてしまいます 1行ずつoption valueで設定したときはできたのに配列でやった時はこのような値が登録されてしまうのは記述がおかしいからでしょうか 長々と失礼しました。よろしくお願いします。