ひとつのCGIフォームから、別のCGIに結果を送るスクリプト
昨日は、画面一杯のフォームを作成し、その値をエコーバックするCGIスクリプトでしたね。
今度は、これを もっと簡単にして 別々のCGIにしましょう。
とっても簡単。コツは $query->start_form(-action=>'2.cgi'); という書き方になります。
'2.cgi'の部分にデータを飛ばしたいcgi名をいれるだけでしゅ。
あとは昨日のCGIフォームを ただ 真っ二つにするだけです。
まず フォームを書いた question.cgiをつくります
#!D:/xampp/perl/bin/perl -w #Cドライブの人はCにしてね use CGI; use utf8; $q = new CGI; print $q->header, $q->start_html("Question CGI.pm Form"), $q->h1("Example CGI.pm Form"), $q->start_form(-action=>'answer.cgi'), $q->em("What's your name?"), $q->textfield('name'), $q->checkbox('Not my real name'), $q->p, $q->em("Where can you find English Sparrows?"), $q->checkbox_group(-name=>'Sparrow locations',-values=>['England','France','Spain','Asia','Hoboken'],-linebreak=>'yes',-defaults=>['England','Asia']), $q->p, $q->em("How far can they fly?"), $q->radio_group(-name=>'how far',-values=>['10 ft','1 mile','10 miles','real far'],-default=>'1 mile'), $q->p, $q->em("What's your favorite color?"), $q->popup_menu(-name=>'Color',-values=>['black','brown','red','yellow'],-default=>'red'), $q->hidden('Reference','Monty Python and the Holy Grail'), $q->p, $q->em("What have you got there?"), $q->scrolling_list(-name=>'possessions',-values=>['A Coconut','A Grail','An Icon','A Sword','A Ticket'],-size=>5,-multiple=>'true'), $q->p, $q->em("Any parting comments?"), $q->textarea(-name=>'Comments',-rows=>10,-columns=>50), $q->p, $q->reset, $q->submit('Action','Shout'), $q->submit('Action','Scream'), $q->endform, $q->end_html;
そして 答えを受け取る answer.cgiを作ります
日本語を入力したら日本語が渡ります
#!D:/xampp/perl/bin/perl -w #Cドライブの人はCにしてね use CGI; use utf8; $q = new CGI; $name =$q->param('name'); @Sparrowlocations =$q->param('Sparrow locations'); $howfar =$q->param('how far'); $color =$q->param('Color'); $possessions =$q->param('possessions'); $Comments =$q->param('Comments'); print $q->header, $q->start_html(-title=>"Answer CGI.pm Form"), $q->h1("Here are the current settings in this form"), $q->em("$name"), $q->hr, $q->em("@Sparrowlocations"), $q->hr, $q->em("$howfar"), $q->hr, $q->em("$color"), $q->hr, $q->em("$possessions"), $q->hr, $q->em("$Comments"), $q->hr, $q->end_html;