[PHP-users 21061]Re: HTML_QuickFormのvalidateについて

T.Okabe okabe @ nsd.jip.co.jp
2004年 3月 30日 (火) 13:16:14 JST


岡部といいます。

>参考になりましたが、開発しているPHPでは
>テンプレートのSmartyを使用しています。
>下記のようなプログラムを作っていますが、サンプルプログラムの
>ように、エラーファンクションに飛びません。

プログラムを見る限り、「エラーファンクション」に飛ぶかどうかと、
smartyを使っていることは、別のことと思いますが?

また、HTML_QuickFormのマニュアルを見ると、

void HTML_QuickForm::process (mixed $callback [, bool $mergeFiles = TRUE])
Performs the form data processing. It actually calls the $callback passing 
the submitted values (and files, when $mergeFiles=TRUE) to it.

となっていますが、理解されていますでしょうか?

> if ($form->validate()) {
>    // Formが正しかったらfreezeする
>      $form->freeze();
>
>   // エラー時の表示
>   $form->process('errorFunc', false);
>   echo "\n<HR>\n";
>  }
> function errorFunc($values)
> {
>(以下略)

見る限り、「エラーファンクション」がerrorFuncだとすると、
「// Formが正しかったら」呼ばれるようですが?

validateの戻りが真のとき、freezeの後、"submit value"をerrorFuncに渡し、
それから、validateの戻りに関係なくsmartyによる表示を行っているように、
わたしには読めましたが、如何でしょう。

# サンプルプログラムは、"コピー"せず、"真似"しましょう。


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