[PHP-users 23632] Re: HTML_QuickForm_Controllerでの確認画面

shima tetuo mlmlml @ lily.freemail.ne.jp
2004年 11月 15日 (月) 17:40:38 JST


tetuoです。

> HTML_QuickForm_Controller を使ってみてハマってしまったのでご教授願えれば
> と思います。
> 
> やりたい事は簡単で、
> 入力画面 => 確認画面 => 登録
> といった画面遷移を作りたいのです。
> 
> http://elf.no-ip.org/blog/index.php?categ=8&year=2003&month=12&id=1072764508
> などを見ながらやってみたのですが、1ページ目から2ページ目に行けません。
> しかも入力エラーになるとフォームが2重に出てしまう始末...


解決したようですが、もう一つの解決法として自分が見つけた方法を連絡します。

----------------
流れ
----------------
1)HTML_QuickForm_Pageを継承した、入力コントロールを準備するクラスを用
意。

2)1)を継承した「入力用」クラスを用意。
    ※入力内容の確認 等の表示名のSubmitボタンを追加

3)1)を継承した「確認用」クラスを用意。
    ※1)の入力内容をsetDefaults()で設定
    ※freeze() をかける
    ※入力内容の確認 等の表示名のSubmitボタンを追加

です。

細々した事も纏めています。サンプルソースは以下よりダウンロード出来ます。
http://mlmlml.nobody.jp/sample/ConfirmationForm.txt

----------------
欠点
----------------
$_SESSIONの内容を見ると

2)1)を継承した入力用クラスを用意
3)1)を継承した確認用クラスを用意

の入力内容として、2重にデータが出来ます。この矛盾に我慢が出来れば、この
方法もすっきりしています。


----------------
気づき
----------------
> しかも入力エラーになるとフォームが2重に出てしまう始末...
これはどうも HTML_QuickForm_Page::buildForm() を継承する際に
$this->_formBuilt = true; があるかないかの違いのようです。



他によい解決法があれば、ご連絡下さい。



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