|
NAMEHTML::FillInForm::Lite::JA - HTMLフォームにデータを充填する VERSIONThe document describes HTML::FillInForm::Lite version 1.12 SYNOPSIS use HTML::FillInForm::Lite;
use CGI;
my $q = CGI->new();
my $h = HTML::FillInForm::Lite->new();
$output = $h->fill(\$html, $q);
$output = $h->fill(\@html, \%data);
$output = $h->fill(\*HTML, \&my_param);
$output = $h->fill('t.html', [$q, \%default]);
$output = $h->fill(\$html, $q,
fill_password => 0, # it is default
ignore_fields => ['foo', 'bar'],
target => $form_id,
);
# Moreover, it accept any object as data
# (these classes come form Class::DBI's SYNOPSIS)
my $artist = Music::Artist->insert({ id => 1, name => 'U2' });
$output = $h->fill(\$html, $artist);
my $cd = Music::CD->retrieve(1);
$output = $h->fill(\$html, $cd);
DESCRIPTIONこのモジュールはHTMLのフォームにデータを充填します。 これは"HTML::FillInForm"をPure Perlで再実装したものです。 "HTML::FillInForm"は"HTML::Parser"によって実装されていますが、 このモジュールは正規表現ベースで実装されています。 その結果、"HTML::FillInForm::Lite"は"HTML::FillInForm"より最大で2倍ほど 高速に動作します。 METHODSnew(options...)"HTML::FillInForm::Lite"のインスタンスを作成します。 受け付けるオプションは以下の通りです。 オプションに未定義値を渡すと、そのオプションそのものを無視します。
fill(source, form_data [, options...])sourceをform_dataで充填します。sourceまたはform_dataが渡されない場合、"die"します。 オプションはnew()と同じです。 このメソッドはクラスメソッドとしてもインスタンスメソッドとしても 呼び出せます。 fill()を同じoptionsで何度も呼び出す場合は、 fill()の前にあらかじめnew()でインスタンスを作っておくと少し高速になります。 しかし、同じインスタンスにつき一度しか呼び出さないなら、インスタンスを作った としてもパフォーマンスは上がりません。 sourceとしては,スカラーリファレンスか文字列の配列リファレンス, ファイル名,ファイルハンドルを渡すことが出来ます。 form_dataとしては,ハッシュリファレンスかparam()メソッドを持つ オブジェクト,アクセサを持つ任意のオブジェクト,前述のいずれかからなる 配列リファレンスを渡すことが出来ます。 form_dataがオブジェクトであれば,そのメソッドはリストコンテキストで呼ばれます。したがって,フィールドに手を付けたくない場合,"undef"ではなく空リスト"()"を返さなければいけません。 DEPENDENCIESPerl 5.8.1以上 NOTES"HTML::FillInForm"との互換性このモジュールは"HTML::FillInForm"バージョン2の新しい構文のみ実装しています。 "HTML::FillInForm::Lite::Compat"は"HTML::FillInForm"バージョン1の構文をサポートし, オプションのデフォルト値も"HTML::FillInForm"と同じになっています。 古いHTMLとの互換性このモジュールはXHTML1.xを処理するように設計されています。 HTML4.xの大部分もサポートはしていますが、一部制限があります。 まず、HTML4では許されている属性名の省略はできません。 たとえば: <INPUT TYPE=checkbox NAME=foo CHECKED> - NG.
<INPUT TYPE=checkbox NAME=foo CHECKED=CHECKED> - OK, ただし古い書き方
<input type="checkbox" name="foo" checked="checked" /> - OK, 正しいXHTML
さらに、このモジュールは常に属性値の大文字・小文字を区別します。 上記の例では、"type"属性の値は小文字でなければなりません。 さらに、閉じタグは省略できません。たとえば以下のようなコードは単に無視します。 <select name="foo">
<option>bar
<option>baz
</select>
正しいXHTMLで書けばこれらの問題は起こりません。 コメントの扱い"HTML::FillInForm::Lite"はコメントやその他の無視すべきものを理解しないので、 処理できるものは全て処理します。 このことが問題になることがあります。たとえば以下のコード: <script> document.write("<input name='foo' />") </script>
これは次のような誤ったコードに置換されます: <script> document.write("<input name='foo' value="bar" />") </script>
このような問題を避けるために"ignore_fields"オプションが使えます。 BUGSNo bugs have been reported. Please report any bug or feature request to <gfuji(at)cpan.org>, or through RT <http://rt.cpan.org/>. AUTHORGoro Fuji (藤 吾郎) <gfuji(at)cpan.org> LICENSE AND COPYRIGHTCopyright (c) 2008-2010 Goro Fuji, Some rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
|