自動的に日付が変るセレクトボックス

このQ&Aのポイント
  • コストを算出するcgiに条件を送信する、下のようなhtmlのフォームを機能アップする方法が解らずに困っています。
  • 2004年か2005年、1月~12月、1日~31日、単品かロットか、数量をそれぞれセレクトボックスで選択するようにしてあるのですが、ページを開いた時に選ばれている数値は当然「selected」で指定しています。
  • いつアクセスしても今日の日付の5日後の日付がselectedになるようにしたいのですが、方法はあるでしょうか?
回答を見る
  • ベストアンサー

自動的に日付が変るセレクトボックス

コストを算出するcgiに条件を送信する、下のようなhtmlのフォームを機能アップする方法が解らずに困っています。 -------------------------- 納品形態1 数量[1]  [2004年] [1月] [1日] [単品]  [算出] 納品形態2 数量[1] [2004年] [1月] [1日] [単品] [算出] 納品形態3 数量[1] [2004年] [1月] [1日] [単品] [算出] -------------------------- 2004年か2005年、1月~12月、1日~31日、単品かロットか、数量をそれぞれセレクトボックスで選択するようにしてあるのですが、 ページを開いた時に選ばれている数値は当然「selected」で指定して NAME="tanni" VALUE="0" SIZE="2"><BR> 納品日 <SELECT NAME="nouhin1"> <OPTION VALUE="2004" SELECTED>2004年 <OPTION VALUE="2005">2005年 </SELECT><SELECT NAME="nouhin2"> <OPTION VALUE="1" SELECTED>1月 <OPTION VALUE="2">2月 … という形になっているので、同じく当然ですが、いつアクセスしても2004年1月1日が選ばれています。 これを、いつアクセスしても今日の日付の5日後の日付がselectedになるようにしたいのですが、方法はあるでしょうか? 「Javascript組めば?」と知人に言われましたが、私は既存のソースの設定値や文字列を打ち変えるくらいしか出来ません。 どこかで、このような目的に合致するスクリプトを配付して下さるサイトはないでしょうか? もしくは、どなたか、ソースを教えて頂けないでしょうか? どうかよろしくお願い致します。

  • chack
  • お礼率100% (283/283)
  • HTML
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.3

#1, #2 です。 日付のセレクトボックスを表示するJavaScriptです。これを元にしてみて下さい。 現在、日付の入力ボックスを作成している部分を、このスクリプトに置き換えれば。多分動作するでしょう。 ただし。セレクトボックスの名前は適当に付けてあるので、ご利用の環境に合わせて修正してくださいね。今は、「yy1」, 「mm1」, 「dd1」, 「yy2」, 「mm2」, 「dd2」・・・ としてあります。1, 2 の数字の部分は、plus5 と言う関数へのパラメータとして渡しています。 <html> <head> <title></title> <script type="text/javascript"> function plus5(p) { var cToDay = (24 * 60 * 60 * 1000); var today = new Date(); var plus5 = new Date(today.getYear(), today.getMonth(), today.getDate() + 5); var y5 = plus5.getYear(); var m5 = plus5.getMonth()+1; var d5 = plus5.getDate(); document.writeln("<select name=\"yy" + p + "\">"); document.writeln("<option value=\"" + y5 + "\">" + y5 + "年</option>"); document.writeln("</select>"); document.writeln("<select name=\"mm" + p + "\">"); for (i = 1; i <= 12; i++) { if (i == m5) { document.writeln("<option value=\"" + i + "\" selected>" + i + "月</option>"); } else { document.writeln("<option value=\"" + i + "\">" + i + "月</option>"); } } document.writeln("</select>"); document.writeln("<select name=\"dd" + p + "\">"); for (i = 1; i <= 31; i++) { if (i == d5) { document.writeln("<option value=\"" + i + "\" selected>" + i + "日</option>"); } else { document.writeln("<option value=\"" + i + "\">" + i + "日</option>"); } } document.writeln("</select>"); } </script> </head> <body> <script type="text/javascript">plus5(1);</script><br> <script type="text/javascript">plus5(2);</script><br> <script type="text/javascript">plus5(3);</script><br> </body> ここが分からない。と言う部分があれば、また質問してください。

chack
質問者

お礼

何度も丁寧なフォローをどうもありがとうございました! これなら、nameのいじり方もわかりますし、年の選択肢の増やし方もフォームの増やし方も解りますし、完璧です。 とても助かりました。 これをステップに、今後は少しでも自力で考えられるよう勉強させて頂きます。 どうも世話になりました!!

その他の回答 (2)

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

#1 です。 言い忘れました。示したスクリプトは、Perl によるものです。CGIで作成されていると言うことですので、参考になると思います。

chack
質問者

お礼

今さらですが、お礼としての返信をさせて頂いておりませんでした。 失礼致しました。その節は本当にありがとうございました。

chack
質問者

補足

度々すみませんです。 CGIは既存のものなので、いじることが出来ません。 CGIに対してデータを送信するhtmlのページ内で何とか対応しなければならないのです。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

次のスクリプトを参考にしてみてください。 # 今日の日付を取得 $t = time; # 今日の日付を表示 print localtime($t). "\n"; # 今日の5日後の日付を計算 $t += 5 * 60 * 60 * 24; # 今日の5日後の日付を表示 print localtime($t). "\n";

chack
質問者

お礼

早々のお返事をどうもありがとうございます。 ただ、お恥ずかしいことに、例えば「本日の日付は○月○日です」というスクリプトでさえ組み方を知らないので、localtimeで数値を求めるスプリプトの冒頭の部分さえ書き方が解らず、私に出来ることと言えば5日後のところを3日後に変更するくらいです。ですから、求めた値をセレクトボックスに反映させる方法も、自分では応用が利かないのです。(^^; 有効に利用させて頂けなくて申し訳ありません。

関連するQ&A

  • 日付のセレクトボックスで0付きの日付にしたい

    ネットで探した式を張り付ける位しかできない超初心者です。 以下のような当日表示の日付のセレクトボックス を探してペーストしたのですが1や2を01、02と表示しません。 これをどうやって直せば01,02,03,04,05と0付きの表示のセレクトボックスに 直せるでしょうか? どうぞよろしくお願いいたします。 <? $time = time(); $year = date("Y", $time); $month = date("n", $time); $day = date("j", $time); print("<select name=\"ayear\">"); //年は修正してください for( $i = 2010; $i <= 2020; $i++ ){ if( $i == $year ){ print("<option value=\"$i\" selected>$i</option>"); }else{ print("<option value=\"$i\">$i</option>"); } } print("</select>年"); print("<select name=\"amonth\">"); for( $j = 1; $j <= 12; $j++ ){ if( $j == $month ){ print("<option value=\"$j\" selected>$j</option>"); }else{ print("<option value=\"$j\">$j</option>"); } } print("</select>月"); print("<select name=\"aday\">"); for( $k = 1; $k <=31 ; $k++ ){ if( $k == $day ){ print("<option value=\"$k\" selected>$k</option>"); }else{ print("<option value=\"$k\">$k</option>"); } } print("</select>日"); ?>

    • ベストアンサー
    • PHP
  • オプションメニューの日付の自動表示

    オプションメニューで設定した「年」・「月」・「日」を自動的に今日の日付を表示させるJAVAスクリプトを教えて頂けないでしょうか? 現在の記述は以下の通りです。 <HTML> <HEAD></HEAD> <BODY> <TABLE cellpadding="2" cellspacing="1"><TBODY><TR> <TD><DIV style="font-size:13px"> <SELECT name="年"> <OPTION value="2006年" selected>2006年</OPTION> <OPTION value="2007年">2007年</OPTION> </SELECT> <SELECT name="月"> <OPTION value="1月" selected>1月</OPTION> <OPTION value="2月">2月</OPTION> <OPTION value="3月">3月</OPTION> <OPTION value="4月">4月</OPTION> <OPTION value="5月">5月</OPTION> <OPTION value="6月">6月</OPTION> <OPTION value="7月">7月</OPTION> <OPTION value="8月">8月</OPTION> <OPTION value="9月">9月</OPTION> <OPTION value="10月">10月</OPTION> <OPTION value="11月">11月</OPTION> <OPTION value="12月">12月</OPTION> </SELECT> <SELECT name="日"> <OPTION value="1日" selected>1日</OPTION> <OPTION value="2日">2日</OPTION> (文字数オーバーのため3日~29日までの記述を省略します) <OPTION value="30日">30日</OPTION> <OPTION value="31日">31日</OPTION> </SELECT></div></TD> </TR></TBODY></TABLE> </BODY> </HTML> HEADタグ内とBODYタグ内の記述を具体的に教えていただければ非常に助かります。 よろしくお願いいたします。

  • javascriptでセレクトボックスの"selected"を動的につ

    javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。 現在、以下のようなフォームを作成しました。 <select name='year'> <option value='2010'>2010</option> <option value='2011'>2011</option> </select>年 <select name='month'> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> </select>月 <select name='day'> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> </select>日 このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか? よろしくお願いします。

  • 今日の日付を自動的にセレクトしたいのですが・・・。

    うまくできません。 どなたか助けていただけないでしょうか? よろしくおねがいします。 今のソースはこんな状態です。 onChange="setDate(this.form);"は4月の時に30日までとかにつかっています。 <!--最初に今日の日付を選択したい--> var date=new Date(); var year = date.getYear(); var year= (year< 2000) ? year+1900 : year; var mon=date.getMonth(); var day=date.getDate(); alert(mon); function setNow(form){ for(var i = 0;i<document.nanngatu.nanngatu.options.length;i++){ if(document.nanngatu.nanngatu.options[i].text==mon){ document.nanngatu.nanngatu.options.selectedIndex=i; break; } } } --間は省略-- <onLoad="setNow(this.form)" > <form name="nanngatu"> <select name="nanngatu" onChange="setDate(this.form);" > <option value="32">1</option> <option value="30">2</option> <option value="32">3</option> <option value="31">4</option> <option value="32">5</option> <option value="31">6</option> <option value="32">7</option> <option value="31">8</option> <option value="32">9</option> <option value="31">10</option> <option value="32">11</option> <option value="31">12</option> </select>月

  • 日付を取得するスクリプト

    JavaScriptに関して質問させていただきます。 下記のようなフォーム記述にたいして、 selectedが現在月にくるようなスクリプトはありますでしょうか? 例えば、7月であれば、7月がアクティブになるようにしたいです。 日付を表示させるスクリプトはわかるのですが、 どのようにselectedとして表示させるのが分かりません。。。 参考になるスクリプトファイルを紹介しているURL、もしくは スクリプトを紹介してくれる方、どうぞご教授お願いします。 <SELECT NAME="mon" size="1"> <option value="" selected> <option value="01">01 <option value="02">02 <option value="03">03 <option value="04">04 <option value="05">05 <option value="06">06 <option value="07">07 <option value="08">08 <option value="09">09 <option value="10">10 <option value="11">11 <option value="12">12 </SELECT>月

  • セレクトボックスの選択項目を変える

    セレクトボックスの選択項目を変えるには どうすればいいですか? <FORM action=./ method=post> <SELECT name=server> <OPTION value=2 selected>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> </SELECT> </FORM> こういうフォーム(FORMやOPTIONにnameがない)で [4]を選択したいです このフォームを書き換えないで(スクリプトでの書き換えなら○) どうにか変えることはできないでしょうか? IEのみの対応でいいので、お願いします

  • javascriptでセレクトボックスを動的に

    javascriptでセレクトボックスの"selected"を動的に変更する方法を教えてください>< 下記のselectedを"10"から"50"に変更したいのですが、 某ASPサービスの環境下での作業のため制約があり直接変更できません。 <body onload="event"> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> そこで、JavaScriptで何とかしようと思うのですが、 <select>~ </select>の間(selectタグ含む)は、ASPサービスの制約でIDやclassを入れることもできず、 変更できるのは、body開始タグ部分、headerタグ内、body内(一部)です。 ページを読み込んだ際に、「50件を選択」、「10件からselected外す」状態にしたいです。 いろいろサイトを見てなんとなくできそうな気はするのですが、 スキル的に初心者レベルのため、わかりませんでした。 何卒よろしくお願いします!

  • セレクトボックスの操作

    <select name="example1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="1" value="追加"> 例えば、上記のセレクトボックスの3を選択して送信ボタンを押したら、3以外の4つの数字の値を持ったセレクトボックス(select name="example2)を出現させたいのです。(example1を残したまま) 選択した数字以外の値を持ったセレクトボックスを出現させたいです。 <select name="example2"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit"name="2" value="追加"> 上記のようになります。example2の1を選択し送信したら <select name="example3"> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 上記のようになります。 上記の手順でセレクトボックスが3つに増えた場合のソースは次のような感じに <select name="example1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="1" value="取り消し"> <select name="example2"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit"name="2" value="取り消し"> <select name="example3"> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 取り消しを押した場合、そのセレクトボックスを削除し、一番新しいセレクトボックス(example3)に削除された値を追加したいです。 example2を取り消した場合、 <select name="example3"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 上記のようになります。 どのように記述すれば実現可能でしょうか? ご教示頂けますと幸いです。 宜しくお願いいたします。

  • セレクトメニューのリセットについて

    <select name="Q1_VALUE"> <option value="1" selected >AAAA</option> <option value="2" selected >BBBB</option> <option value="3" >CCCC</option> <option value="4" >DDDD</option> </select> <select name="Q2_VALUE"> <option value="1" selected >1111</option> <option value="2" >2222</option> <option value="3" >3333</option> </select> 上記セレクトメニューでQ1_VALUEの選択肢を変更した場合Q2_VALUEの選択肢をデフォルトに戻す方法を教えて下さい。

  • 【PHP】メールフォームの連動するセレクトボックス

    メールフォームを作っているのですが、 連動するセレクトボックスにおいて、 自動返信メールに内容が思った様に記載されません。 複数のチェックボックがあり、それぞれに連動して、 セレクトボックス1でサイズを選び、セレクトボックス2で数を選ぶようになっています。 ソースは最後に記載しますが、希望する返信メールの形は以下の通りです。 ーーーーーー現在ーーーーーー 【色 / サイズ / 数量】 S 1個 L 2個 S 3個 【料金】 (表示なし) ーーーーーー希望ーーーーーー 【色 / サイズ / 数量】 レッド S 1個 ブルー L 2個 イエロー S 3個 【料金】 S × 4個:600円 =1,800円 L × 2個:900円 =1,800円 ご教示のほど、お願い致します。 以下、ソースです。 <dt>色</dt> <dd> <label class="color"><input type="checkbox" name="color[]" id="color_01" value="レッド">レッド</label> </dd> <dd> <select class="parent" name="size_01"> <option value="" class="msg" selected>サイズを選択</option> <option value="S">S:600円</option> <option value="L">L:900円</option> </select> </dd> <dd> <select class="children" name="number_01"> <option value="0" class="msg" selected>0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select><br> </dd> <dd> <label class="color"><input type="checkbox" name="color[]" id="color_01" value="ブルー">ブルー</label> </dd> <dd> <select class="parent" name="size_02"> <option value="" class="msg" selected>サイズを選択</option> <option value="S">S:600円</option> <option value="L">L:900円</option> </select> </dd> <dd> <select class="children" name="number_02"> <option value="0" class="msg" selected>0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select><br> </dd> <以下、他の色が同様に続きます> <dt>料金</dt> <dd class="required"> <div id="result"> S:合計<span class="s maisu" name="sum_s_n" value="0">0</span>個 × 600円 = <span class="s kingaku" name="sum_s_p" value="">0</span>円<br> L:合計<span class="a maisu" name="sum_a_n">0</span>個 × 900円 = <span class="all kingaku" name="sum_all">0</span>

    • ベストアンサー
    • PHP

専門家に質問してみよう