• 締切済み

日記のスクリプトで日付の移動メニューを作りたい

日記スクリプトを書いているのですが 何年何月の日記のページに移動するのに セレクトメニューで移動するようにしたいのですが 以下のスクリプトだとどうしても日付が表示されません どこが間違っているのでしょうか print"<select name=>\n"; foreach(0 .. $year) { if($year eq "$w_year[$_]"){print"<option value=\"$w_year[$_]/$month[$_]/1\" selected>$w_year[$_]/$month[$_]\n";} else{print"<option value=\"$w_year[$_]/$month[$_]/1\">$w_year[$_]/$month[$_]\n";} } print"</select>\n";

  • CGI
  • 回答数2
  • ありがとう数2

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

変数(または配列)ですから、当然変数(配列)に値を代入するところがあるはずです。 例えば @w_yesr = ('1','2'); とか・・・ >$w_year[$_]って入れれば年が1年から2006年まで >セレクトメニューに表示されると思っていたのですが 他で設定してなければ何も出力はされません。

yumihirata
質問者

お礼

回答ありがとうございます $w_year[$_]を$_にしたら表示されました

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

$w_year[$_] などに値が入ってないのでは?

yumihirata
質問者

補足

回答ありがとうございます 値ってどこの部分でしょうか? テキストで2000年、2001年とかって指定すると セレクトメニューに表示できるのですが $w_year[$_]って入れれば年が1年から2006年まで セレクトメニューに表示されると思っていたのですが 表示できませんでした

関連する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
  • 日付を取得するスクリプト

    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>月

  • php メールフォーム プルダウンメニュー

    現在PHPにてメールフォームを作成しております。 フォーム→確認画面→送信という順に作成しています。 フォームの段階でプルダウンを作成していますが、確認画面でフォームの内容(プルダウンの項目)を表示させようとしたときに、そのまま表示されず、1年4月1日などと表示されます。 例→フォームでは1990年04月10日としたら確認画面では1年4月1日。 1990年04月10日のように表示させたい。 確認画面でどのように記述したらよろしいでしょうか? フォームの記述は <?php if (count($_POST) > 0) { $year = @$_POST['year']; $month = @$_POST['month']; $day = @$_POST['day']; } print '<select name="year">' . "\n"; $start = date('Y') -20; $end = date('Y') -10; for ($i = $start; $i <= $end; $i++) { print '<option value="' . $i . '">' . $i . '</option>' . "\n"; } print '</select>年' . "\n"; print '<select name="month">' . "\n"; for ($i = 1; $i <= 12; $i++) { print '<option value="' . $i . '">' . $i . '</option>' . "\n"; } print '</select>月' . "\n"; print '<select name="day">' . "\n"; for ($i = 1; $i <= 31; $i++) { print '<option value="' . $i . '">' . $i . '</option>' . "\n"; } print '</select>日' . "\n"; ?> です。 確認画面のスクリプトは $year = isset($_POST['year']) ? $_POST['year'][0] : NULL; $month = isset($_POST['month']) ? $_POST['month'][0] : NULL; $day = isset($_POST['day']) ? $_POST['day'][0] : NULL; と<?php print h($year[0]) ;?>年<?php print h($month[0]) ;?>月<?php print h($day[0]) ;?>日 です。 またセッションも使用しております。 $_SESSION['year'] = $year; $_SESSION['month'] = $month; $_SESSION['day'] = $day; です。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • 複数の SELECT タグを連動する

    複数の SELECT タグを連動するようにさせたいです。メインカテゴリを選択すると、サブカテゴリが出てくるというものです。 javaスクリプトの方は確認しました。 http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/selectexample.html ただ、これをCGI(perl)上で利用したいのですが、方法が分かりません。 CGIは以下のようになっています。 print "<SELECT name=\"cat\">\n"; print "<OPTION value=\"\">カテゴリを選択してください</OPTION>\n"; for ($cnt = 0 ; $cnt<= $#catlist ; $cnt++) { if($catlist[$cnt] eq $cat){ print "<option value=\"$catlist[$cnt]\" selected>$catlist[$cnt]</OPTION>\n"; }else{ print "<option value=\"$catlist[$cnt]\">$catlist[$cnt]</OPTION>\n"; }#if閉じ }#for閉じ print "</SELECT>\n"; 配列変数(という言い方であってますか?@catlist)は別ファイル(data.ini)に保存されています。 サブカテゴリも配列を利用できないでしょうか?(@sub1=(~);@sub2=(~);のような感じ) また、修正画面(selectedを付ける)での使い方も今一つ不明です。 現在は、 print "<SELECT name=\"cat\">\n"; print "<OPTION value=\"\">カテゴリを選択してください</OPTION>\n"; for ($cnt = 0 ; $cnt<= $#catlist ; $cnt++) { if($catlist[$cnt] eq $cat){ print "<option value=\"$catlist[$cnt]\" selected>$catlist[$cnt]</OPTION>\n"; }else{ print "<option value=\"$catlist[$cnt]\">$catlist[$cnt]</OPTION>\n"; }#if閉じ }#for閉じ print "</SELECT>\n"; このような状態ですが、方法があれば教えてください。

  • プルダウンからの日付取得処理

    現在、PHP+SQLiteでWEBページを作成しております。 (初心者です。) フォームに日付をプルダウンで選択出来るように、 $utime = time()+$jisa*3600; $today = getdate($utime); //年のセレクトボックス(±2年) echo "<select name=year>\n"; for ($y=$today[year]+2; $y>=$today[year]-2; $y--) { $sel = ($y == $today[year]) ? " selected" : ""; echo "<option value=\"$y\"$sel>$y</option>\n"; } echo "</select>/\n"; //月のセレクトボックス(12-1月) echo "<select name=mon>\n"; for ($m=12; $m>=1; $m--) { $sel = ($m == $today[mon]) ? " selected" : ""; echo "<option value=\"$m\"$sel>$m</option>\n"; } echo "</select>/\n"; //日のセレクトボックス(31-1日) echo "<select name=day>\n"; for ($d=31; $d>=1; $d--) { $sel = ($d == $today[mday]) ? " selected" : ""; echo "<option value=\"$d\"$sel>$d</option>\n"; } echo "</select>\n"; というコードを記述しております(これはネットを参考にしました)。 これでプルダウンの表示自体は出来たのですが、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • phpプルダウンメニュー 日付チェック方法

    <?php //年の入力 print '<select name="year">' . "\n"; $start = date('Y') -0; $end = date('Y') +1; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>年' . "\n"; //月の入力 print '<select name="month">' . "\n"; for ($i = 01; $i <= 12; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>月' . "\n"; //日の入力 print '<select name="day">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>日' . "\n"; ?> と記述して、日付選択のときに 本日より前の日を選んだら、エラー 本日より先の日を選んだら、OK 例→2009年01月01日は×  →2010年01月01日は○ というチェック方法をしたいのですが、どのように記述したらよろしいでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • リストメニューに反映させる内容

    list.dat 内 $list1,$list2,$list3,$list4,$list5,$name1,$name2,$name3,$name4,$name5, print "<select name=list>\n"; print "<option value="0">未選択</option>\n"; print "<option value="1">$name1</option>\n"; print "<option value="2">$name2</option>\n"; print "<option value="3">$name3</option>\n"; print "<option value="2">$name4</option>\n"; print "<option value="3">$name5</option>\n"; print "</select>\n"; list.dat内のデータをselectメニューに反映させたいのですが、自分の頭ではかなり難しい事のようで、行き詰ってしまいました。 質問の仕方が下手で、どのように書いていいのかわからないのですが、やりたいことは、 $list1の名前が$name1 $list2の名前が$name2 というように、$listと$nameに付けられた数値番号が同一のものがセットになります。 この両方の変数にデーターが入っている場合のみ、セレクトメニューに反映させます。 例えばlist.dat内が $list1,,$list3,,$list5,$name1,$name2,$name3,$name4,, のような場合は、 print "<select name=list>\n"; print "<option value="0">未選択</option>\n"; print "<option value="1">$name1</option>\n"; print "<option value="3">$name3</option>\n"; print "</select>\n"; このようになります。 上のような作りは無理でしょうか? お力をおかし頂けると幸いです。

    • ベストアンサー
    • Perl
  • 日付から曜日を表示したい

    現在、HTMLでJavaScriptを用いたホームページを作成しています。 プルダウンリストの日付から閏年に対応しているソースコードを参考にして組んだまでは 良かったのですが、プルダウンリストで選択された年月日から曜日の抽出がうまくいかず悩んでいます。 以下、少しわかりにくいですがイメージです。 2015   年   1   月   1  日    → ○曜日 2016       2       2 2017       3       3  ~        ~       ~ 2030       12      31 具体的なヒントやソースを頂けないでしょうか? よろしくお願いします。 原状のbodyの中身を書いておきます。  <form name="formDate"> <label>申請日:</label> <select name="selectYear" onchange="setSelectMonth()"></select> <label>年</label> <select name="selectMonth" onchange="setSelectDate()"></select> <label>月</label> <select name="selectDate"></select> <label>日</label> <select name="selectWeek" onchange="setSelectyear()" onchange="setSelectMonth()" onchange="setSelectDate()"disabled> <OPTION>日曜日<OPTION>月曜日<OPTION>火曜日<OPTION>水曜日<OPTION>木曜日<OPTION>金曜日<OPTION>土曜日 </select> </form> <script type="text/javascript"> <!--初期値設定--> var Now = new Date(); var NowYear = Now.getFullYear(); var NowMonth = Now.getMonth()+1; var NowDate = Now.getDate(); var NowWeek = Now.getDay(); <!--閏年--> function Uruu( Year ){ var uruu = ( Year%400==0 ) ? true : ( Year%100==0 ) ? false : ( Year%4==0 ) ? true : false; return uruu; } <!--年--> function setSelectYear(){ for(var y=NowYear;y<NowYear+6;y var select = document.formDate.selectYear; var option = select.appendChild( document.createElement('option') ); option.value = y; option.text = y; option.selected = ( y==NowYear ) ? 'selected' : false; } setSelectMonth(); } setSelectYear(); <!--月--> function setSelectMonth(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var select = document.formDate.selectMonth;// while( select.options.length ){ select.removeChild( select.options[0] ); } for(var m=1;m<=12;m++){ var option = select.appendChild( document.createElement('option') ); option.value = m; option.text = m; option.selected = ( Year==NowYear ) ? ( ( m==NowMonth ) ? 'selected' : false ) : ( ( m==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear ) ? ( ( m<NowMonth ) ? 'disabled' : false ) : false; } setSelectDate(); } <!--日--> function setSelectDate(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var Month = document.formDate.selectMonth.options[document.formDate.selectMonth.selectedIndex].value; var days = [31,( Uruu(Year) ? 29 : 28 ),31,30,31,30,31,31,30,31,30,31]; var select = document.formDate.selectDate; while( select.options.length ){select.removeChild( select.options[0] );} for(var d=1;d<=days[Month-1];d++){ var option = select.appendChild( document.createElement('option') ); option.value = d; option.text = d; option.select = ( Year==NowYear && Month==NowMonth ) ? ( ( d==NowDate ) ? 'selected' : false ) : ( ( d==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear && Month==NowMonth ) ? ( ( d<NowDate ) ? 'disabled' : false ) : false; } } </script>

  • perl セレクトメニューを ↓の者です。

    前質で→ http://oshiete1.goo.ne.jp/qa4142221.html #print "<option value=\"$day1\">$day1"; で出来たのですがw dayの日範囲を多くするとかなり長くなってしまい(T_T) (初心者のくせに)foreachを使ってみようかと エスケープしたりダブルコーションにしたり色々やっても・・・ <option>に月日が表示されません(T_T) 基本的に間違っているのでしょうか・・・ お願いします。 *他にも変なところがあったら教えて下さい。 -------------------------------------- <select name=dd><option value="なし" selected> ↓ <option value="なし">指定なし EOM foreach (0 .. $#pl) { if ($in{'plan'} eq $_) { print "<option value=\"$_\">$pl[$_]\n"; } else { print "<option value=\"$_\">$pl[$_]\n"; } } print "</option></select>\n"; #-------------------------------------- ### ↑メイン.cgiです。↑ ### ↓ サブ.cgiです。↓ #-------------------------------------- # 時間 $time = time(); # 範囲日 $day1 = day0($time + (86400 * 2)); $day2 = day0($time + (86400 * 3)); $day3 = day0($time + (86400 * 4)); ############ 上下の行のday数が14日間位まで続く・・・ @pl = ('$day1', '$day2', '$day3'); # 日計算 sub day0{ my(@weekdayname) = ('日','月','火','水','木','金','土'); my $time = shift || time(); my $day0 = $time + (24 * 60 * 60); my ($yyyy, $mm, $dd, $w) = (localtime($day0))[5,4,3,6]; $yyyy += 1900; $mm += 1; return( sprintf('%4d/%2d/%2d(%s)', $yyyy, $mm, $dd, $weekdayname[$w]) ); }

    • ベストアンサー
    • Perl
  • セレクトBOXをプルダウン形式にしたいのですが・・・

    CGI初心者です。セレクトボックスで表示しているものをプルダウン形式にしたいのですが、どこを直したらいいのか教えてください。 ちなみに、いまのスクリプトは $size1 = @part1 + 1; print "<td valign=top nowrap><font color=\"$t_color\">■</font> <B>ユーザ名</B><br>\n"; print "<select name=P1 size=\"$size1\">\n"; print "<option value=\"99\" selected>指定なし\n"; foreach (0 .. $#part1) { print "<option value=\"$_\">$part1[$_]\n"; } print "</select></td>\n"; です。

    • ベストアンサー
    • CGI