#!/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 = ''; #数字がなければスペース
}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>
ここに入れるべきものがよくわかりません。
</body>
</html>
何を入れるとプログラムにきれいにカレンダーが表示されるのでしょうか?
No.2ベストアンサー
- 回答日時:
何がしたいのかよくわからないです。
> HTMLで打つときに
って、HTMLでカレンダーを動的に変化させるつもりですか?
1ページ目がHTMLで書かれてて、そこで年と月を入力し、
2ページ目は、report.cgiでカレンダーを表示するのでは?
No.3
- 回答日時:
htmlからformでcgiを呼び出すと、呼び出したhtmlの特定の書式の部分を書き換えてくれるような機能があると思ってませんか。
そういう機能はありません。
cgiでカレンダー以外の部分(たぶん年月を指定するform)も含んだhtmlを書き出すのがもっとも素直なやり方でしょう。
あるいは、元のhtmlをframe構造にしておき、formのtargetでframeを指定するとかでしょう。
http://www.tohoho-web.com/www.htm
でも参考にしてやってみてはどうでしょう。
No.1
- 回答日時:
カテゴリーがCGIではないでしょうか?
少なくともHTMLとは、少し違うような気がします。
FORMの中で年月をいれると、下にカレンダーが表示されるといったことをしたいようですが、「.cgi」の拡張子でそのなかにCGIをかくか、またはフォームで値をCGIに渡すだけにするかのどちらかのようなきがします。
私はCGIが専門じゃないので、やはりCGIのカテゴリで再投稿されてみてはいかがでしょうか?
もちろん、このカテゴリーでも返信はあるかと思いますが、カテゴリを移動すれば、より確実な気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TRタグの余白をcssで設定するには
-
tableにul,または,olを入れられ...
-
文字列が入っているtdを削除せ...
-
テーブルのヘッダとボディの幅...
-
テーブルの任意の列を非表示に...
-
テーブル入れ子した時の、テー...
-
TABLE内の枠線を一部消すには
-
cssで、表示されるテキストによ...
-
画像のロールオーバーがずれて...
-
HTMLで外部ファイルの読み込み
-
[CSS]tableでtd同士だけ行ごと...
-
tableでcolspanを使うと次行以...
-
テーブルで文字が上揃えになり...
-
Safariでテーブルのセルの高さ...
-
テーブルの縦罫線を1本だけ細く...
-
テーブルの行の高さを指定する...
-
テーブルの表示がずれます
-
テーブルの行数が違う列のテキ...
-
テーブルの途中からcellspacing...
-
【CSS】:hasで可能? imgを含む...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
tableにul,または,olを入れられ...
-
テーブルの任意の列を非表示に...
-
TRタグの余白をcssで設定するには
-
文字列が入っているtdを削除せ...
-
テーブルのヘッダとボディの幅...
-
テーブルの行の高さを指定する...
-
cssで、表示されるテキストによ...
-
テーブルのセルに画像をピッタ...
-
HTML <td></td>タグ セル内余...
-
ホームページ 表の上の余白を...
-
テーブルの表示がずれます
-
スタイルシートで colspan=3と...
-
テーブルの上に空行が入る・・...
-
テーブルタグのセルの幅の一部...
-
表の1列だけをCSSを使って右揃...
-
逆L字の表(table)組み
-
tableでcolspanを使うと次行以...
-
HTMLのテーブルで桁をそろ...
-
テーブルのセルにアンカー
おすすめ情報