HTML::FillInForm(2)
というわけで、前日に色々と解けてきたHTML::FillInFormなんですが、大体にして困るのは、セレクト、ラジオボタン、そしてチェックボックス、です。で、それも試してみました。
HTML(index.html)
<table cellspacing="0" cellpadding="0" border="1"> <tr valign="top"> <td>名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr valign="top"> <td>サブジェクト</td> <td><input type="text" name="subject" value=""></td> </tr> <tr valign="top"> <td>ラジオボタン</td> <td> <input type="radio" name="media" value="ラジオ">ラジオ <input type="radio" name="media" value="テレビ">テレビ <input type="radio" name="media" value="新聞">新聞 <input type="radio" name="media" value="映画">映画 </td> </tr> <tr valign="top"> <td>チェックボックス</td> <td> <input type="checkbox" name="news" value="朝">朝 <input type="checkbox" name="news" value="昼">昼 <input type="checkbox" name="news" value="夜">夜 </td> </tr> <tr valign="top"> <td>都道府県</td> <td> <select name="address"> <option value="">未選択</option> <option value="北海道">北海道</option> <option value="東京都">東京都</option> </select> </td> </tr> </table>
スクリプト
#!/usr/local/bin/perl
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);use HTML::FillInForm;
use HTML::Template;print "Content-type: text/html\n\n";
#1 CGI.pmを使用する
my $cgi = CGI->new;
$cgi->param( "name", "John Smith" );
$cgi->param( "subject", "題名" );
$cgi->param( "media", "テレビ" );
$cgi->param( "news", "夜","朝" );
$cgi->param( "address", "北海道" );#2 HTMLを読み込む
my $template = HTML::Template->new( filename => './index.html' );
my $html = $template->output();#3 CGI.pmの値を埋め込む
my $fif = new HTML::FillInForm;
my $output = $fif->fill(scalarref => \$html, fobject => $cgi);print $output;
その結果
<table cellspacing="0" cellpadding="0" border="1"> <tr valign="top"> <td>名前</td> <td><input value="John Smith" name="name" type="text"></td> </tr> <tr valign="top"> <td>サブジェクト</td> <td><input value="題名" name="subject" type="text"></td> </tr> <tr valign="top"> <td>ラジオボタン</td> <td> <input value="ラジオ" name="media" type="radio">ラジオ <input checked="checked" value="テレビ" name="media" type="radio">テレビ <input value="新聞" name="media" type="radio">新聞 <input value="映画" name="media" type="radio">映画 </td> </tr> <tr valign="top"> <td>チェックボックス</td> <td> <input checked="checked" value="朝" name="news" type="checkbox">朝 <input value="昼" name="news" type="checkbox">昼 <input checked="checked" value="夜" name="news" type="checkbox">夜 </td> </tr> <tr valign="top"> <td>都道府県</td> <td> <select name="address"> <option value="">未選択</option> <option value="北海道" selected="selected">北海道</option> <option value="東京都">東京都</option> </select> </td> </tr> </table>
となると。いい感じですよ!これが欲しかった。ワタシ、とても欲しかった。