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パッケージをご紹介します。

関連キーワード
PHP,PEAR,Webアプリケーション,開発効率,プログラミング,HTML_QuickForm,入力フォーム,チェック,検証

コメントをお待ちしています

お名前:

メールアドレス:

コメント:

このエントリーのトラックバックURL

http://it.jfe-tec.jp/mt/mt-tb.cgi/22