• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:html)

HTMLでカレンダーを表示する方法

このQ&Aのポイント
  • HTMLでカレンダーを表示するためには、年と月の入力フォームと表示ボタンを作成します。
  • 入力フォームから入力された年と月の値を取得し、その値を元にカレンダーを計算します。
  • カレンダーの計算結果をHTMLのテーブル形式で表示します。

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

  • ベストアンサー
  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.2

何がしたいのかよくわからないです。 > HTMLで打つときに って、HTMLでカレンダーを動的に変化させるつもりですか? 1ページ目がHTMLで書かれてて、そこで年と月を入力し、 2ページ目は、report.cgiでカレンダーを表示するのでは?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.3

htmlからformでcgiを呼び出すと、呼び出したhtmlの特定の書式の部分を書き換えてくれるような機能があると思ってませんか。 そういう機能はありません。 cgiでカレンダー以外の部分(たぶん年月を指定するform)も含んだhtmlを書き出すのがもっとも素直なやり方でしょう。 あるいは、元のhtmlをframe構造にしておき、formのtargetでframeを指定するとかでしょう。 http://www.tohoho-web.com/www.htm でも参考にしてやってみてはどうでしょう。

masa20-20
質問者

お礼

参考にしてみます。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • akira212
  • ベストアンサー率24% (75/308)
回答No.1

カテゴリーがCGIではないでしょうか? 少なくともHTMLとは、少し違うような気がします。 FORMの中で年月をいれると、下にカレンダーが表示されるといったことをしたいようですが、「.cgi」の拡張子でそのなかにCGIをかくか、またはフォームで値をCGIに渡すだけにするかのどちらかのようなきがします。 私はCGIが専門じゃないので、やはりCGIのカテゴリで再投稿されてみてはいかがでしょうか? もちろん、このカテゴリーでも返信はあるかと思いますが、カテゴリを移動すれば、より確実な気がします。

masa20-20
質問者

お礼

ありがとうございます。 カテゴリーを変えてみてもう一度質問してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cgiとhtml

    #!/urs/bin/local/perl use CGI qw(:standard); use Date::Calc qw(:all); $year = param('year'); $mon = param('mon'); if ($year or $mon){ #年、月がないとエラー if (!$year){ &error(100,'年、月を入力して下さい。'); }elsif(!$mon){ &error(110,'年、月を入力して下さい。'); } #年は1以上、月は、1~12の範囲 #紀元前は計算しない if($year < 1){ &error(120,'年に誤りがあります。'); } if($mon < 1 or $mon > 12){ &error(130,'月に誤りがあります。'); } #カレンダーの計算 $cline = Calendar($year,$mon); #先頭行と最終行をとる $cline =~ s/^\n//; $cline =~ s/\n$//; #改行区切りで分割 @Cal = split(/\n/,$cline); #まず、年、月をテーブルに入れる $CAL.=<<"EOL"; <table border="1"> <tr> <td colspan="7" align="center">$year年$mon月</td> </tr> EOL #曜日をテーブルに入れる $CAL.=<<"EOL"; <tr> <td>日</td> <td>月</td> <td>火</td> <td>水</td> <td>木</td> <td>金</td> <td>土</td> </tr> EOL #日付をテーブルに入れる for($i=2; $i<=$#Cal; $i++){ $CAL.= <<"EOL"; <tr> EOL $shift=3; #1日に3文字文使う $s = 0; for ($j=0; $j<7; $j++){ $day = substr($Cal[$i], $s, $shift); if($day !~ /\d/){ $day = '&nbsp;'; #数字がなければスペース }else{ $day =~ s/ //g; #余分なスペースをとる } $CAL.=<<"EOL"; <td align="right">$day</td> EOL $s += $shift #3文字を右へ $s += 1; #2回目からは、区切り文字も計算 } $CAL.=<<"EOL"; </tr> EOL } $CAL.=<<"EOL"; </table> EOL } print <<"EOL"; Content-type: txet/html というプログラムを作ってカレンダーを表示させたいのですが、 HTMLで打つときに <html> <head> <title>カレンダー</title> </head> <body> <from action="report.cgi"> 年:<input type="text" size="4" name="year"> 月:<input type="text" size="2" name="mon"> <br> <input type="submit" value="表示"> </from> <br><br> $CAL(と入れたのですが、画面に%CALと出るだけでカレンダーが表示されません) </body> </html> 何を入れると画面ににきれいにカレンダーが表示されるのでしょうか?

    • ベストアンサー
    • CGI
  • HPにカレンダーを設置したいのですが…。

    HP用に小さなカレンダーを設置したいと考え フリーで使えるJavaスクリプトのカレンダーをダウンロードしたのですが 下記のスクリプトファイルをhtmlに直接組み込まずに、 外部のファイルから読み込ませる方法はないでしょうか? 宜しくお願いします。 ------------------------------------------ <script> // カレンダーの枠の色 cal_bd = "#ffffff"; // カレンダーの文字色 cal_tx = "#636363"; // カレンダーの背景色 cal_bg = "#ffffff"; // 土曜日の色 sat_col = "#0000fd"; // 日曜日の色 sun_col = "#ff0100"; // 本日の文字色 tdy_tx = "#ffffff"; // 本日の背景色 tdy_col = "#ae2e23"; // 過去未来の表示可能年数(10なら10年前から10年後まで) noy = 10; // 月 mnname = new Array('1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'); // 曜日 wdname = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); buffer = document.location.search; buffer = buffer.replace("?",""); buffer = buffer.split("&"); query = new Array(); for (i in buffer) { buf = buffer[i].split("="); query[buf[0]] = buf[1]; } if (query['year'] && query['mon']) { y = eval(query['year']); m = eval(query['mon']) - 1; target = new Date(y,m); d = new Date(); nowyear = d.getYear(); nowmon = d.getMonth(); nowdate = d.getDate(); } else { target = new Date(); nowyear = target.getYear(); nowmon = target.getMonth(); nowdate = target.getDate(); } year = target.getYear(); mon = target.getMonth(); if (nowyear < 1900) nowyear += 1900; if (year < 1900) year += 1900; for (i = 28; i <= 31; i++) { ldate = new Date(year,mon,i); if (ldate.getMonth() == mon) ld = i; } fd = new Date(year,mon,1); fwday = fd.getDay(); ldate = new Date(year,mon,ld); lwday = ldate.getDay(); day = 1 - fwday; CAL = "<table><form><td align=center>"; CAL += "<table bgcolor=" + cal_bd + " border=0 cellpadding=0 cellspacing=0><td>"; CAL += "<table border=0 cellspacing=1>"; CAL += "<tr bgcolor=" + cal_bg + "><th colspan=7>"; CAL += "<select name=year class=mon>"; for (i = nowyear - noy; i <= nowyear + noy; i ++) if (i == year) CAL += "<option value=" + i + " selected>" + i; else CAL += "<option value=" + i + ">" + i; CAL += "</select><select name=mon class=mon>"; for (i = 1; i <= 12; i ++) if (i == mon + 1) CAL += "<option value=" + i + " selected>" + mnname[i-1]; else CAL += "<option value=" + i + ">" + mnname[i-1]; CAL += "</select> <input type=submit value='Set'>"; CAL += "</th></tr>"; CAL += "<tr bgcolor=" + cal_bg + ">"; for (i in wdname) { if (i == 0) wdname[i] = wdname[i].fontcolor(sun_col); else if (i == 6) wdname[i] = wdname[i].fontcolor(sat_col); else wdname[i] = wdname[i].fontcolor(cal_tx); CAL += "<td align=center class=wday><tt>" + wdname[i] + "</tt></td>"; } CAL += "</tr>"; while (day <= ld) { CAL += "<tr bgcolor=" + cal_bg + ">"; for (i = 0; i < 7; i ++) { if (day < 1 || day > ld) CAL += "<td><br></td>"; else { if (year == nowyear && mon == nowmon && day == nowdate) { CAL += "<td bgcolor=" + tdy_col + " align=right class=date>"; CAL += String(day).fontcolor(tdy_tx); } else { CAL += "<td align=right class=date>"; if (i == 0) CAL += String(day).fontcolor(sun_col); else if (i == 6) CAL += String(day).fontcolor(sat_col); else CAL += String(day).fontcolor(cal_tx); } CAL += "</td>"; } day ++; } CAL += "</tr>"; } CAL += "</table></td></table></td></form></table>"; document.write(CAL); </script>

  • 配列が受け取れないのはなぜなのでしょうか?

    カレンダーの日付にリンクをさせようとしているのですが、上手くできません。 リンクさせたい日付をforeachで配列として渡そうと思うのですが、 受け取ってくれません。 なぜ、受け取ることができないのでしょうか? 何が間違っているのでしょうか。 どなたかご指摘、アドバイスなどお願いします。 以下コードです。 <?php $qry = $_SERVER['QUERY_STRING']; if( ereg( "^[0-9]{8}", $qry ) ){ $today = getdate( mktime( 0, 0, 0, substr( $qry,4,2 ), substr( $qry,6,2 ), substr( $qry,0,4 ) ) ); }else{ $today = getdate(); } $f_today = getdate( mktime( 0, 0, 0, $today[mon], 1, $today[year] ) ); $prev_month = date( "Ymd", mktime( 0, 0, 0, $today[mon], 0, $today[year] ) ); $next_month = date( "Ymd", mktime( 0, 0, 0, $today[mon]+1, 1, $today[year] ) ); <table width=170><tr><td> <table width=100%> <tr><td colspan=7><a href="?<?= $prev_month ?>">≪ </a><?= $today[year] ?>年<?= $today[mon] ?>月 <a href="?<?= $next_month ?>"> ≫</a></td></tr> <tr><td>日</td><td>月</td><td>火</td><td>水</td><td>木</td><td>金</td><td>土</td></tr> <tr> <?php for ( $i=0; $i<$f_today[wday]; $i++ ) { echo "<td></td>\n"; } $day = 1; while( checkdate( $today[mon], $day, $today[year] ) ){ $link = sprintf( "%4d%02d%02d", $today[year], $today[mon], $day ); if( $link == 20081014 ){ //← 日付を指定※ここが問題の箇所です。 echo "<td><a href=?date=$link\">$day</a></td>\n"; }else{ echo "<td>$day</td>\n"; } if( $f_today[wday] == 6) echo "</tr><tr>"; $day++; $f_today[wday]++; $f_today[wday] = $f_today[wday] % 7; } if( $f_today[wday] > 0 ){ while( $f_today[wday] < 7 ) { echo "<td> </td>\n"; $f_today[wday]++; } } else { echo "<td colspan=7></td>\n"; } ?> </tr> </table> </td></tr></table> 下記のように日付を配列にするとダメです。 $day = 1; //以下を変更 $data = array( "200810005", "200810010", "20081011", "20081015", "20081025", "20081030" ); foreach( $data as $value ) { $val = $value; while( checkdate( $today[mon], $day, $today[year] ) ){ $link = sprintf( "%4d%02d%02d", $today[year], $today[mon], $day ); if( $link == $val ){  // ← 配列で代入※配列として受け取ってくれない。 echo "<td><a href=?date=$link\">$day</a></td>\n"; }else{ echo "<td>$day</td>\n"; } if( $f_today[wday] == 6) echo "</tr><tr>"; $day++; $f_today[wday]++; $f_today[wday] = $f_today[wday] % 7; } } ↑ここまで なぜ、できないのかが分からないので、色々試しても上手くいきません。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • GETを使わずにPOSTで送信…したいのですが。

    いつもお世話になっております。 また教えて欲しい事がありまして、投稿させて頂きました。 どなた様かご教授宜しくお願い致します。 今現在、GETを使ってのデータ送信は行える用にはなっているのですが、色々調べていった結果GET送信では様々な危険性(POST送信でも 危険性があるのは変わりないみたいですが…)が伴うという事 でしたので、どうにかPOST送信に変更したいと思っています。 今後、更なる重要なデータを送るようなプログラムを書いていく際に 役立てていけるようになればと思っています。 以下ソースです。 ↓↓↓↓ <html> <head> <meta http-tquiv="Content-Type" content="text/html;charset=EUC-JP"> <title>calendar</title> </head> <body> <form name="form1" action="yotei.php" method="post"> <?php  $year = date("Y");  $month = date("n");  $day = date("j");  $year2=$_GET["year"];  $month2=$_GET["month"];  $day2=$_GET["day"]; //先月、来月をクリックした場合の処理  if($year2!="" || $month2!="" || $day2!="") {   if($year2!="") {    $year = $year2;   }   if($month2!="") {    $month = $month2;   }   if($day2!="") {    $day = $day2;   }else {    $day = 1;   }  } // カレンダー表示(先月の場合)  if($month==1) {   $year3 = $year-1;   $month3 = 12;  }else {   $year3 = $year;   $month3 = $month-1;  } // カレンダー表示(来月の場合)  if($month==12) {   $year4 = $year+1;   $month4 = 1;  }else {   $year4 = $year;   $month4 = $month+1;  }  print "<table border='1' align='center'><tr>"; print "<td width='250' align='center' bgcolor='yellowgreen' colspan='7'>"; print "<a href=\"?year=$year3&month=$month3\"><</a>"; print " ".$year."年".$month."月のカレンダー "; print "<a href=\"?year=$year4&month=$month4\">></a></td></tr>"; print "<tr><td align='center' bgcolor='pink'>日</td>"; print "<td align='center' bgcolor='silver'>月</td>"; print "<td align='center' bgcolor='silver'>火</td>"; print "<td align='center' bgcolor='silver'>水</td>"; print "<td align='center' bgcolor='silver'>木</td>"; print "<td align='center' bgcolor='silver'>金</td>"; print "<td align='center' bgcolor='skyblue'>土</td></tr>"; $week = date(w,mktime(0,0,0,$month,1,$year)); for ($ix1 = 0 ; $ix1 < $week ; $ix1++) { print "<td align='center'>-</td>"; } // ファイルの読み込み $data = './data.CSV'; $file = fopen($data,"r"); while(!feof($file)){ $csv = fgets($file); $csv = mb_convert_encoding($csv, "EUC-JP", "SHIFT-JIS"); //csvファイルを配列に格納 $str = explode(",", $csv); for($day = 1 ; checkdate ($month,$day,$year) ; $day++) { if($str[1] == "$year/$month/$day") { $ymd[] = $str[1]; $all[] = "<br>予定=$str[0] <br>開始日=$str[1] <br>終了日=$str[2] <br>"; } } } if(($day+$week)%7 == 1 ) { print "bgcolor='pink'><font color='red'>"; }else if(($day+$week)%7 == 0 ) { print "bgcolor='skyblue'><font color='blue'>"; }else { print "bgcolor='wheat'>"; } $enc = ''; for($i=0 ; $i<count($ymd) ; $i++) { if($ymd[$i] == "$year/$month/$day") { $enc = $enc.urlencode($all[$i]); print "<a href=yotei.php?yotei=$enc>"; } } print "$day</a></td>"; if(($day+$week)%7 == 0 ) { print "</tr>"; } } fclose($file); $weekend = date(w,mktime(0,0,0,$month,$day,$year)); for ($ix2=0 ; $ix2<(7-$weekend) ; $ix2++) { if ($weekend != 0) { print "<td align='center'>-</td>"; } } print "</tr>"; print "</table>"; ?> <table border='0' align='center'> <tr> <td width="250"> <div align="center"> <input type="button" value="戻る" onClick="location.href='data.php'" name="button"> </div> </td> </tr> </table> <br><br> </form> </body> </html>

    • ベストアンサー
    • PHP
  • カレンダーについて教えてください。

    phpでカレンダーを作っているのですが休日を設定したい場合 の方法がわかりません。 for文で日にちを表示させているのですが休日設定の配列の値を どのように参照すればいいかで悩んでおります。 // 現在の日付を取得 $year = date("Y"); $month = date("n"); $today = date("j"); // 休日を設定 $holyday = array('1', '5', '12', '28'); // カレンダー始まり echo "<table width='200' height='182' border='0'><tr><td valign='top'>"; echo "<table border ='0' bgcolor='#cccccc' cellspacing='1' cellpadding='3' width='170'><tr>\n"; echo "<td colspan='7' bgcolor='white' align='center' style='font-size:12px;font-weight:bold;color:#6666ff'>"; echo $year . "年" . $month . "月</td><tr>"; // 曜日表示部分 $weekday = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); for ($i = 0 ; $i < 7 ; $i++) { if ($i == 0 or $i == 6) { echo "<td class='head_" . $i . "'>"; } else { echo "<td class='head'>"; } echo $weekday[$i] . "</td>\n"; } echo "</tr>\n"; // 日数と曜日の計算 $days = cal_days_in_month (CAL_GREGORIAN, $month, $year); $week_start = jddayofweek (cal_to_jd(CAL_GREGORIAN, $month,1, $year) , 0); // 日付が始まる前の空白 for ($dot1 = 0 ; $dot1 < $week_start ; $dot1++) { echo "<td align='center' class='dot'></td>\n"; } // 日付表示部分 for ($day = 1 ; $day <= $days ; $day++) { if (($day+$week_start)%7 == 1) { // 日曜日 echo "<tr>\n<td class='sun'>$day</td>\n"; } else if (($day+$week_start)%7 == 0) { // 土曜日 echo "<td class='sat'>$day</td>\n</tr>\n"; } else if ($day == $today) { // 今日 echo "<td class = 'today'>$day</td>\n"; // ここで休日を表示させるのですが方法がわかりません。 } else if ($day == $holyday[0]) { // 休日 echo "<td class = 'holyday'>$day</td>\n"; } else { // 平日 echo "<td class='othr'>$day</td>\n"; } } // 最終日後の空欄の表示 $wend = 35 - ($days + $week_start); if ($wend < 0) { $wend += 7; } if ($wend == 7) { echo ''; } else if ($wend != 0) { for ($dot2 =0 ; $dot2 < $wend ;$dot2++) { echo "<td align='center' class='dot'></td>\n"; } } // カレンダー終り echo "</tr></table>\n"; echo "</td></tr></table>\n";

    • ベストアンサー
    • PHP
  • 該当日のスケジュール内容を別ウィンドウで表示したいのですが…。

    初めて質問させて頂きます。 プログラム初心者です。 今、課題でカレンダー作成(予定を表示させる)をしています。 現在の時点でカレンダーの指定日(予定のある日)にリンクをつけるところまでは出来たのですが、リンク先に移動した際に該当日の予定を表示させるのが出来なくて困っています。 (予定はCSVファイルからuploadしています。) どなたかお力を貸して頂けませんでしょうか??…orz。 宜しくお願いします。 ソースはこちらです。 …読みにくくてすみません(泣 <html> <head> <meta http-tquiv="Content-Type" content="text/html;charset=EUC-JP"> <title>カレンダー</title> </head> <form name="skl" method="post" action="yotei.php"> <body> <?php  $year = date("Y");  $month = date("n");  $day = date("j");  $year2=$_GET["year"];  $month2=$_GET["month"];  $day2=$_GET["day"]; //先月、来月をクリックした場合の処理  if($year2!="" || $month2!="" || $day2!="") {   if($year2!="") {    $year = $year2;   }   if($month2!="") {    $month = $month2;   }   if($day2!="") {    $day = $day2;   }else {    $day = 1;   }  } // カレンダー表示(先月の場合)  if($month==1) {   $year3 = $year-1;   $month3 = 12;  }else {   $year3 = $year;   $month3 = $month-1;  } // カレンダー表示(来月の場合)  if($month==12) {   $year4 = $year+1;   $month4 = 1;  }else {   $year4 = $year;   $month4 = $month+1;  } // テーブルの作成  print "<tableborder='1'><tr>";  print "<td width='250' align='center' bgcolor='yellowgreen' colspan='7'>";  print "<a href=\"?year=$year3&month=$month3\"><<</a>";  print " ".$year."年".$month."月のカレンダー ";  print "<a href=\"?year=$year4&month=$month4\">>></a></td></tr>";  print "<tr><td align='center' bgcolor='pink'>日</td>";  print "<td align='center' bgcolor='silver'>月</td>";  print "<td align='center' bgcolor='silver'>火</td>";  print "<td align='center' bgcolor='silver'>水</td>";  print "<td align='center' bgcolor='silver'>木</td>";  print "<td align='center' bgcolor='silver'>金</td>";  print "<td align='center' bgcolor='skyblue'>土</td></tr>";  $week = date(w,mktime(0,0,0,$month,1,$year));  for ($ix1 = 0 ; $ix1 < $week ; $ix1++) {   print "<td align='center'>-</td>";  } // ファイルの読み込み  $data = "date- data.CSV";  $file = fopen($data,"r");  while(!feof($file)){   $csv = fgets($file);   $csv = mb_convert_encoding($csv, "EUC-JP", "SHIFT-JIS"); //csvファイルを配列に格納   $str = explode(",", $csv);   for($day = 1 ; checkdate ($month,$day,$year) ; $day++) {    if($str[1] == "$year/$month/$day") {     $ymd[] = $str[1];    }   }  }  for($day = 1 ; checkdate ($month,$day,$year) ; $day++) {   print "<td align='center'";   if(($day+$week)%7 == 1 ) {    print "bgcolor='pink'><font color='red'>";   }else if(($day+$week)%7 == 0 ) {    print "bgcolor='skyblue'><font color='blue'>";   }else {    print "bgcolor='wheat'>";   }   for($i=0 ; $i<count($ymd) ; $i++) {    if($ymd[$i] == "$year/$month/$day") {     print "<a href=yotei.php>";    }   }   print "$day</td>";   if(($day+$week)%7 == 0 ) {    print "</tr>";   }  }  fclose($file);  $weekend = date(w,mktime(0,0,0,$month,$day,$year));  for ($ix2=0 ; $ix2<(7-$weekend) ; $ix2++) {   if ($weekend != 0) {    print "<td align='center'>-</td>";   }  }  print "</tr>";  print "</table>"; ?> <table border='0'> <tr> <td width="250"> <div align="center"> <input type="button" value="ファイル参照画面へ戻る" onClick="location.href='upload.php'" name="button"> </div> </td> </tr> </table> <br><br> </body> </form> </html>

    • 締切済み
    • PHP
  • スケジュール・カレンダーを携帯から

    無料配布されているスケジュール・カレンダーのCGIを使い、スケジュール表をUPさせましたが、パソコンから見るといいのですが、 携帯から見ると、 ・先月や来月に移るのに、フォームのイメージタグを使い、GIFファイルをつかい、(hiddenで)今月の月であったり、年であったりの情報を送っています。 しかし、これを携帯でみると、「LAST」アイコンではなく、テキスト入力欄になっていて、先月や来月へ移ることができません。 どうしてなのかが、わからないです。 たぶん、このあたりを変えるといいのだろうと思うのですが、どうしたらいいのかわかりません。 ーーーーーーーーーーーーーーーーーーーーーーーーーー sub dsp { print "<table width=",$calw-40," cellspacing=2 cellpadding=0><tr><td width=100><font size=\"+1\"><b>$logyear年</b></font></td>\n"; $mon = $logmon - 1; if ($mon < 1) {$mon = 12; $year = $logyear - 1;} else {$year = $logyear;} if (2002 < $year) { print "<td align=right><form action=\"$script\" method=\"POST\">\n"; print "<input type=\"hidden\" name=\"mode\" value=\"$mode\">\n"; print "<input type=\"hidden\" name=\"pass\" value=\"$inpass\">\n"; print "<input type=\"hidden\" name=\"year\" value=\"$year\">\n"; print "<input type=\"hidden\" name=\"mon\" value=\"$mon\">\n"; print "<input type=\"image\" src=\"$last_icon\"></td></form>\n"; } print "<td width=100 align=center><font size=\"+2\"><b>$logmon月</b></font></td>\n"; $mon = $logmon + 1; if (12 < $mon) {$mon = 1; $year = $logyear + 1;} else {$year = $logyear;} print "<td><form action=\"$script\" method=\"POST\">\n"; print "<input type=hidden name=mode value=\"$mode\">\n"; print "<input type=hidden name=pass value=\"$inpass\">\n"; print "<input type=hidden name=year value=\"$year\">\n"; print "<input type=hidden name=mon value=\"$mon\">\n"; print "<input type=image src=\"$next_icon\"></td></form><td width=100></td></tr></table>\n"; } ーーーーーーーーーーーーーーーーーーーーーーーーーー お願いします。

    • ベストアンサー
    • CGI
  • リセットボタンとエラー画面

    PHPを始めて1週間ほどのド初心者です。 本を買って勉強中ですが、本やネットでも調べてもわからないので 質問させて頂いています。 あるところからサンプルを引っ張ってきてフォームを作るところです。↓ session_start(); $errors = 0; if(!isset($_SESSION["form1"])){ $_SESSION["form1"] = "input"; $error["name"]["message"] = "<br><font color=\"#FF9900\">《必須》</font>"; $error["birt"]["message"] = ""; $error["sexx"]["message"] = "<br><font color=\"#FF9900\">《必須》</font>"; $name1 = ""; $name2 = ""; $sex = ""; $year = ""; $mon = ""; $day = ""; }else{ $name1 = stripslashes( $_POST["name1"] ); $name2 = stripslashes( $_POST["name2"] ); if((0==strlen($name1))&&(0==strlen($name2))) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《名前が未入力です》</font>"; $errors++; } elseif(0==strlen($name1)) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《性が未入力です》</font>"; $errors++; } elseif(0==strlen($name2)) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《名が未入力です》</font>"; $errors++; } else { $error["name"]["message"] = ""; } $year = $_POST["year"]; $mon = $_POST["mon"]; $day = $_POST["day"]; if( (($year<1900)||(date("Y")<$year)) || (($mon<1)||(12<$mon))|| (($day<1)||(31<$day)) ) { $error["birt"]["message"] = "<br><font color=\"#FF0000\">《生年月日が無効です》</font>"; $errors++; } else { $error["birt"]["message"] = ""; } $sex = $_POST["sex"]; if(!isset($_POST["sex"])) { $error["sexx"]["message"] = "<br><font color=\"#FF0000\">《性別が未選択です》</font>"; $errors++; } else { $error["sexx"]["message"] = ""; } if(0 == $errors){ $_SESSION["form1"] = "checked"; } } ?> ~~~~~~~中略~~~~~~~~ echo "<tr><td colspan=2 align=center><input type=submit name=submit value=\"申 込\">  \n". "<input type=reset name=cancel value=\"クリア\"></td></tr>\n". "</table> ~~~~~~~以降略~~~~~~~ 配布されているサンプルなのでこのままUPすれば正常に動きます。 フォームに何も入力しないで送信ボタンを押すとエラー表示されます。 何か入力をしてリセットを押すと、入力された値はリセットされて消えますが、 エラー表示がそのままになってしまいます。 つまり、エラー表示されたままなので、これをリセットボタンを押すことにより 初期の(エラー表示されていない)状態に戻したいのです。 $reset = true; などの例文を拝見しても難しくて解決できません(T-T) 何か良い方法があったら教えて下さい。 宜しくお願いします。

    • 締切済み
    • PHP
  • 週だけのカレンダーを作成する方法

    週だけのカレンダーを作成しています。 1~31日までのカレンダーは作成できるのですが、その週だけのカレンダーを作成する方法が分かりません。どなたか週だけのソースを教えていただけるとありがたいです。 ■因みに1~31日までのカレンダーのソース Sub Gamen_cal( ) if kbn = "edi" or kbn = "del" then Call Update_sche end if %> <form method="POST" action="sche.asp"> <table border="1"> <tr> <td><% Call SetMonth %></td> <td><input type="Submit" name="sub" value="表示"></td> </tr> </table> <input type="hidden" name="act" value="cal"> <input type="hidden" name="kbn" value="go"> </form> <p><% =year(hiduke) %>年<% =month(hiduke) %>月 <table border="1"> <tr> <td bgcolor="#FFD700">日</td> <td bgcolor="#FFD700">月</td> <td bgcolor="#FFD700">火</td> <td bgcolor="#FFD700">水</td> <td bgcolor="#FFD700">木</td> <td bgcolor="#FFD700">金</td> <td bgcolor="#FFD700">土</td> </tr> <% Dim i,j,wd,nextmonth,matsubi wd = Weekday(DateSerial(year(hiduke), month(hiduke), 1)) nextmonth=DateAdd("m", 1, hiduke) matsubi=Day(DateSerial(year(nextmonth), month(nextmonth), 1 - 1)) For i = 0 to 5 if d >= matsubi then Exit For %> <tr> <% Dim d,ymd For j = 0 to 6 d = (i * 7) + j - wd + 2 ymd = DateSerial(year(hiduke), month(hiduke), d) %> <% if d > 0 and d <= matsubi then %> <td><a href="sche.asp?act=edi&hiduke=<% = ymd %>"> <% if yoteichk(ymd) = "OK" then Response.Write "●" %> <% = d %></a></td> <% else %> <td> </td> <% end if %> <% Next %> </tr> <% Next %> </table> <% End Sub ------------------------------------------------------------- ■週だけの場合どのようなソースになるのでしょうか?

  • $error["name"]["message"]の“がunexpectedといわれる

    昨日のNo.1576647の続きでお尋ねします。 下記は昨日お尋ねしたコードの下半分です。これをインプットしブラウザで開こうとしたところ、またもや9行目の["name"]["message"]で Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in :\***\htdocs\***\****\xxx.php on line 66というエラーが出ます。(nameと messageの“”を取ると13行目の["birt"]["message"] で、同じエラーが出ます。)昨日ご指導願った要領で“の洩れはないか、必死に探しましたが見つけることができません。今度は果たして異なった原因なのでしょうか。類似の問題を決して安易にお尋ねするつもりではないのですが、私的には刀折れ矢つきた感じになってしまいました。もし、ヒントがありましたらご教示いただければ幸いです。 <html><head>・・・ <title>TEST</title></head><body> <?php if("checked" != $_SESSION["form1"]){ echo "<form method=post action=****.php><table border=\"1\">\n". "<tr><td colspan=2 align=\"center\">名前と生年月日を入力</td></tr>\n". "<tr><td colspan=2></td></tr>\n"; echo "<tr><td valign=\"top\">名前:{ $error["name"]["message"]} </td><td>". " <input type=text name=name1 value=\"$name1\"> ". " <input type=text name=name2 value=\"$name2\"><br>例:東京花子 </td></tr>\n". " <tr><td colspan=2></td></tr>\n"; echo "<tr><td>生年月日:{ $error["birt"]["message"]} </td><td>\n". "<input type=text name=year size=5 value=\"$year\">年\n". "<select name=mon><option".(""==$mon?" selected":"")."></option>\n"; 以下略

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • 1ヶ月前頃からPCデータの印刷ができなくなった
  • ヘッドクリーニング後のパターン印刷は問題ない
  • キヤノン製品に関する質問
回答を見る

専門家に質問してみよう