[PHP-users 27734] Re: PEAR:HTML_QuickForm_Rule による入力数値チェック

oppara mlml @ oppara.tv
2005年 12月 2日 (金) 11:18:27 JST


こんにちは、大原と申します。

> -------- 考察 -----------
> validate メソッドにおいては
> 引数にはフォームオブジェクトしか指定できない。
> 従って、0、10のような固定値を引数に渡すことができ 
> ない?

HTML_QuickForm_Rule_Rangeが参考になると思います。


で、呼び出すとるとこんな感じ。
test_valueというのがチェックするテキストボックスの名前とすると、

$form->addRule( 'test_value', 'error_msg', 'NumericRange', array( 0,  
10 ) );


> //ルールレジスト
> $form->registerRule('NumericRange', null,
> 'originalRangeCheck');
>
> // 0から10以外の値であればエラー
> $form->addRule(array('test_value', 0, 10), "0-10までの値
> を入力してください", 'NumericRange');
>
> -------- クラス -----------
> class originalRangeCheck extends HTML_QuickForm_Rule{
>
> 	function validate($array_value)
> 	{
> 		$target = $array_value[0];
> 		$from   = $array_value[1];
> 		$to     = $array_value[2];
>
> 		if (($from <= $target) and ($target <= $to)) {
> 			return true;
> 		}else{
> 			return false;
> 		}
> 	}
> }
>
>

------- 呼び出し側 -----------


PHP-users メーリングリストの案内