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

T.Okabe okabe @ nsd.jip.co.jp
2004年 3月 30日 (火) 18:20:23 JST


岡部といいます。

>また別の問題ですが、'UserEntryChk.php'に下記のような記述でリンクをはってみた
>のですが、
>この設定を行なうとvalidateのチェックがかかりません。
>
>$form =& new HTML_QuickForm( $formName ='nextForm',$method ='get',$action
>='UserEntryChk.php');

HTML_QuickFormのコードを見るまでは、
私もよくわからない部分でしたが、
HTML_QuickFormのvalidateは、
自分自身がもう一度実行されることを前提としています。

HTML_QuickFormを用いた処理フローは次のようになります。
1.HTML_QuickFormでフォームを構築して表示。
2.表示されたフォームについて、Webクライアントからrequest。
3.おなじコードでHTML_QuickFormのフォーム構築
4.validate
ここで、3の部分においてrequestからsubmitvalueを取得しています。

なので、formのaction属性を別のプログラムにした場合、
そのプログラムに3と4が無ければ、当然validateは発生しないのです。

# ちなみに、1で構築したオブジェクトを
# セッションに保存しておいて利用しようと思っても、
# 3のrequest取り込みが発生しないため動作しません。
# # 取り込みプロセスを強制発動させれば動きますが。

>ここでの設定をしないでvalidateのチェックがOKだったら別ページに飛ばす方法はあ
>るのでしょうか。

MVCモデルなどではありがちですが、
formのaction属性はあくまでも自分自身を指定し、
validateがOKなら、リダイレクトします。
別のページへいきたい場合は、リダイレクト先に指定します。


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