dポイントプレゼントキャンペーン実施中!

<?php
print '<select name="start_time">' . "\n";
$start = mktime(09,00);
$end = mktime(19,00);
for ($i = $start; $i <= $end; $i+=30*60) {
$time=date("H:i",$i);
print "<option value=\"{$time}\">{$time}</option>\n";
}
print '</select>~' . "\n";

print '<select name="end_time">' . "\n";
$start = mktime(11,00);
$end = mktime(21,00);
for ($i = $start; $i <= $end; $i+=30*60) {
$time=date("H:i",$i);
print "<option value=\"{$time}\">{$time}</option>\n";
}
print '</select>' . "\n";
?>

となっている場合選択される場合
14:00~16:00と選んでいただければよいのですが、この記述だと14:00~10:00と選ぶことが可能になってしまいます。
ここでご質問なのですが、start_timeのセレクトを選んだ場合、自動でend_timeをstart_timeで選んだ時刻の2時間後から選択できる記述はないでしょうか?
javascriptを使わないといけないのでしょうか?
もしphpでございましたらご教授お願いします。

A 回答 (2件)

そういうチェックをしたいなら、javascriptを使うことになります。


また、画面遷移を無くしたいならAJAXにすればいいです。

参考URL:http://ja.wikipedia.org/wiki/Ajax
    • good
    • 0
この回答へのお礼

有難うございます。
javascriptで作成してみようと思います。

大変お手数なのですが、サンプルコード又は参考サイト等がございましたら、ご教授お願いいたします。

お礼日時:2009/10/21 10:29

開始時刻を選択→次の画面で終了時刻


という遷移を行うのであれば可能ですが、
画面の遷移を行わないのであれば
javascriptを使うことになると思います。

画面遷移は行いたくない、javascriptは使いたくない
というのであれば、フォーム送信後のページで
時間の前後関係をチェックするか、
┌─────┬─┐  ┌──┬─┐
│14:00│▼│より│02│▼│時間
└─────┴─┘  └──┴─┘
といった形式のフォームで実現するのはいかがでしょう?

ほかに補足や前提などあれば、追加で教えてください。

この回答への補足

返事が遅くなり、申し訳ありません。
また、お忙しい中、有難うございます。

javascriptを使わないとだめですか・・・

時刻が選択された時点でエラーをだすことは可能でしょうか?
例→14:00~11:00と選んで、確認画面にて時刻が間違っていますと、表示される
のはできますでしょうか?
こちらもjavascriptを使わないとだめでしょうか?

補足日時:2009/10/20 11:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!