noshi’s diary

ゲームの事、映画やドラマ、思いついた事、プログラミングの事、雑記的なことを書いています

php PEAR::HTML_QuickFormで入力桁数をチェックする

HTML_QuickFormをもう少しテスト。 HTML_QuickFormオブジェクトのaddRuleメソッドでは、未入力チェックだけでなく有効範囲などのチェックできます。 たとえば、ユーザー名を6桁とした場合、addRuleメソッドを使って条件判定することもできます。 次のサンプルではユーザー名について6~8文字で入力されているかどうかをチェックしてます。

<?php
//ライブラリの読み込み
require_once("HTML/QuickForm.php");
//オブジェクトの作成
$form = new HTML_QuickForm();
//フォーム要素の作成
$form->addElement("text","id","ユーザー名");
$form->addElement("submit","submit","送信");
//入力条件を設定
$form->addRule("id", "ユーザー名を入力!", "required");
$form->addRule("id", "ユーザー名は半角英数字", "alpanumeric");
$form->addRule("id", "ユーザー名は6~8文字", "rangelength",array(6,8));
$form->setRequiredNote("<font color='red'>*</font>必須入力");
//サーバー側で検証
$form->validate();
//フォームを表示
$form->display();
?>

結果表示はつぎのとおり。 6文字未満ですと、入力エラーを出し、適切な文字数ですとそのまま入力できます。