blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_2

Perl 「 モジュール 」 CGI.pm フォーム テキストフィールド (0x104)

Perl 「 モジュール 」 CGI.pm フォーム テキストフィールド (0x104)

目次 - Perl Index



Theme



Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0x104 回。

CGI.pm でテキストフィールドのフォームを生成する。



メソッド textfield()



メソッド「 textfield() 」は、HTML の input 要素内でアトリビュート type の値を「 text 」としたテキストフィールドを生成します。

テキストフィールドは、Web ブラウザによって、1 行分の入力ボックスとして表示されます。


textfield() の設定



メソッド textfield() は次の様に指定します。


print $q->textfield(-name => 'text_line',
-value => 'default value',
-size => 20,
-maxlength => 30);


このメソッドから得られる HTML コードを確認する前に各パラメータを確認します。


-name ( 必須 )



パラメータ「 -name 」は、フィールドに対する「 名前 」を設定します。名前は、メソッド param() 等で値を処理する場合の識別子になります。

このパラメータは必須です。


-value ( オプション )



パラメータ「 -value 」は、フィールドの初期値を指定します。このパラメータは過去には「 -dafault 」の名前で利用されていました。

-value を指定しない場合、当該フィールドの初期値は空文字になります。

このパラメータはオプションです。


-size ( オプション )



パラメータ「 -size 」は、フィールドの長さを設定します。このパラメータを設定しなかった場合は、標準値の半角 20 文字分のサイズが設定される様です。

フィールドの長さは、入力可能な文字数とは関係しません。入力可能な文字数はパラメータ「 -maxlengh 」で指定します。

このパラメータはオプションです。


-maxlength ( オプション )



パラメータ「 -maxlength 」は、フィールドに入力可能な最大文字数を設定します。このパラメータを設定しなかった場合は、標準値の半角文字 524288 文字が設定される様です。

入力を必須とする、最小文字数の設定方法は、現時点で見つけられていません。別途スクリプトプログラム等を利用してチェックを入れる必要があるかもしれません。

HTML 5 であれば、アトリビュート max と min で最大値、最小値の設定が可能になっている様です。


パラメータをまとめて指定する



次の様に記述することで、上記パラメータをまとめて指定することが可能です。リストデータとして、左から「 name 」「 value 」「 size 」「 maxlength 」の各パラメータを設定しています。


print $q->p($q->textfield('text_line', 'default value', 20, 30));




メソッド input()



メソッド「 input() 」を利用して、テキストフィールドを作成することも出来ます。メソッド input () を利用する場合は、次の様に記述します。


print $q->p(input({ -type => 'text',
-name => 'text_field',
-value => 'default value',
-size => 20,
-maxlength => 30 }));




メソッド textfield() と input() の出力



次の Perl プログラムコードから得られる HTML コードを確認します。


# メソッド texetfield() でテキストフィールド
print $q->textfield(-name => 'textfield_method',
-value => 'default value',
-size => 20,
-maxlength => 30);

# メソッド input() でテキストフィールド
print $q->p(input({ -type => 'text',
-name => 'input_method',
-value => 'default value',
-size => 20,
-maxlength => 30 }));



上記から得られる HTML コードは次の通りです。


<p>
<input type="text" name="textfield_method" value="default value" size="20" maxlength="30" />
</p>
<p>
<input name="input_method" maxlength="30" type="text" value="default value" size="20" />
</p>



いずれも同じ機能を有していますが、アトリビュートの順番が異なります。これは、CGI.pm のパラメータが、実際はハッシュによって設定されていることが関係していると理解しています。

(0x50) で確認した通り、ハッシュに格納されたデータの順番は配列と違ってランダムに決定されるからです。

なお、いずれも同じ機能を有していると書きましたが、デフォルト値の扱いについてやや異なる動作を確認しました。それは (0xf7) で確認した挙動に関連するものです。


0x104 -> 0x105 へ



次回は、 Web ブラウザ上での挙動をキャプチャ画像を交えて確認します。


参考情報は書籍「 初めての Perl 第 6 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。

目次 - Perl Index


















同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲