2) 入力値のチェック – HTML_QuickForm
HTML_QuickFormは入力フォームを生成するだけではありません。パラメータを設定するだけで、入力値もチェックしてくれます。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
必須チェック
前回作った「名前」と「Eメールアドレス」の入力フォームを修正して、「名前」を必須にしてみましょう。
<?php
require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('form1', 'get');
$form->addElement('text', 'name', '名前');
$form->addElement('text', 'email', 'Eメールアドレス');
$form->addElement('submit', 'submit_button', '送信');
$form->addRule('name', '名前は必須です', 'required'); --(1)
if ($form->validate()) { --(2)
echo "<h3>入力された値は</h3>";
echo "名前:" . $_GET['name'] . "<br>";
echo "Eメールアドレス:" . $_GET['email'] . "<br>";
} else {
$form->display();
}
?>
(1):フォームオブジェクトのaddRule ()メソッドでname要素を必須に設定
(2):フォームオブジェクトのvalidate ()メソッドで検証
ブラウザーからこのファイルにアクセスしてみると、名前が必須になったことがわかります。

名前を入力せずに「送信」してみると、(1)で設定したエラーメッセージが表示されます。

Eメールアドレス フォーマット チェック
次に、Eメールアドレスのフォーマットチェックを追加します。
<?php
require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('form1', 'get');
$form->addElement('text', 'name', '名前');
$form->addElement('text', 'email', 'Eメールアドレス');
$form->addElement('submit', 'submit_button', '送信');
$form->addRule('name', '名前は必須です', 'required');
$form->addRule('email', '不正です', 'email' ); --(1)
if ($form->validate()) {
echo "<h3>入力された値は</h3>";
echo "名前:" . $_GET['name'] . "<br>";
echo "Eメールアドレス:" . $_GET['email'] . "<br>";
} else {
$form->display();
}
?>
(1): email要素にフォーマットチェックを設定
不正なフォーマットのEメールアドレスを「送信」すると、(1)で設定したエラーメッセージが表示されます。

今回は、「必須チェック」と「Eメールアドレス フォーマット チェック」をご紹介しましたが、これ以外にも「文字列の長さチェック」や「数値チェック」など、便利なチェック機能がコーディングなしで実装できます。
次回は、ページング処理を簡単に行えるPagerパッケージをご紹介します。
関連キーワード


