初歩から始める初心者向け
Perl-CGI
講座
■
|
トップページ
|
CGI
設置
|
CGI
作成
|
作成事例
|
設置用語
|
作成用語
|
関数リファレンス
|
FAQ
|
お問合せ
|
CGI
の設置方法
フリーで配布されている
CGI
を設置する際の手順や注意事項などの説明です。
CGI
作成の初歩
初めて
CGI
を作る方向けの手順を簡単な例で説明しています。
CGI
作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。
CGI
の設置に関する用語
CGI
の作成に関する用語
CGI
の設置や作成時に使われている用語や関連知識を掲載しています。
設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。
フォームのボタンを押すと背景色を変更 [2]
サンプルは CGI にアクセスすると、ラジオボタンと送信ボタンが表示され、
ラジオボタンで色を選択して送信すると、背景色が変わるというものです。
今回はフォントのサイズ変更と、フォームボタンの位置も記憶しておきます。
ラジオボタンを選択済みにするには checked を付けますので、フォームから
渡された値から、選択済みにするボタンを条件で選択しています。
#!/usr/local/bin/perl #デコードするサブルーチンの呼び出し &dec; #初期値もしくは引数が取れない場合はデフォルト値を渡す if ($forminh{'size'} eq "") { $forminh{'size'} = 14; } #カラー設定のチェック位置を再現する if ($forminh{'color'} eq "blue") { $ch2 = "checked"; } elsif ($forminh{'color'} eq "red") { $ch3 = "checked"; } elsif ($forminh{'color'} eq "green") { $ch4 = "checked"; } elsif ($forminh{'color'} eq "yellow") { $ch5 = "checked"; } else { $ch1 = "checked"; } #サイズ設定のチェック位置を再現する if ($forminh{'size'} eq "4") { $msize2 = "checked"; } elsif ($forminh{'size'} eq "13") { $msize3 = "checked"; } elsif ($forminh{'size'} eq "30") { $msize4 = "checked"; } elsif ($forminh{'size'} eq "40") { $msize5 = "checked"; } else { $msize1 = "checked"; } #HTMLページを表示する ------------------------------------------------ print "Content-type: text/html\n\n"; print <<"HTML"; <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>設定を変更するサンプル</TITLE> </HEAD> <BODY bgcolor="$forminh{'color'}" style="font-size : $forminh{'size'}px;"> <CENTER> <FORM method="POST" action="./test.cgi"><BR> 背景色 <INPUT type="radio" name="color" value="white" $ch1>白 <INPUT type="radio" name="color" value="blue" $ch2>青 <INPUT type="radio" name="color" value="red" $ch3>赤 <INPUT type="radio" name="color" value="green" $ch4>緑 <INPUT type="radio" name="color" value="yellow" $ch5>黄 <BR> <BR> 字サイズ <INPUT type="radio" name="size" value="14" $msize1>標準 <INPUT type="radio" name="size" value="4" $msize2>小 <INPUT type="radio" name="size" value="13" $msize3>中 <INPUT type="radio" name="size" value="30" $msize4>大 <INPUT type="radio" name="size" value="40" $msize5>特大 <BR> <BR> <BR> <INPUT type="submit" value="設定を変更"><BR> </FORM> </CENTER> </BODY> </HTML> HTML exit; #フォームからの値をデコードするサブルーチン --------------------------- sub dec { my ($formin,$name,$value,$tmp,@indata); read(STDIN, $formin, $ENV{'CONTENT_LENGTH'}); #データを受け取る @indata = split (/&/,$formin); #データを&で区切り、配列へ foreach $tmp (@indata) #要素分(配列分)以下の処理を繰り返す { ($name,$value) = split (/=/,$tmp); # =記号で区切り名前と値 $forminh{$name} = $value; #区切った名前を付けた連想配列に } }
これらの渡し方をすれば、色の他スタイルシートやレイアウト、文字サイズなども自由に
変更できますので、例えば印刷用ページの生成などができると思います。
変更したいHTMLページを読み込んで、印刷用ページなどを生成するなどの処理にすれ
ば、閲覧される方が自由に変更できるので便利に使えるような気がします。
関連項目
・
CGI
の作成に関する用語
・
CGI
作成に関するFAQ
・ 連想配列の使い方
・ フォームからの値をデコード
Beginner's CGI
- Copyright (C) 2003 aimix. All Rights Reserved -