[PHP-users 25757] HTML_QuickForm のfreeze()画面でのフィルター処理

it_555_it @ excite.co.jp it_555_it @ excite.co.jp
2005年 6月 9日 (木) 00:39:38 JST


こんばんは。
島田です。

HTML_QuickFormに関する質問です。
下記、ざっと書いてしまいましたが良くある使い方だと思います。

// 初期登録画面
if (!$_POST['submit'] || !$form->validate()) {
    $sub[] =& $form->createElement('submit', 'confirm', '確認画面');
    $form->addGroup($sub, 'submit', null);
} elseif ($form->validate) {
    // 確認画面
    if ($form->getSubmitValue("submit[confirm]")) {
        -- snip --
        $form->freeze();
    // 登録処理
    } elseif ($form->getSubmitValue("submit[regist])) {
        $values = getSubmitValues();
        -- snip --
        DB 処理
    }
}

// 以下Smarty処理

?>

さて、あえてfreezeを使って、同一テンプレート(Smarty)で確認画面を表示しているわけですが、
$form->applyFilter() は、上記登録処理時 $values がフィルター対象です。

例えば、 $form->applyFilter('id', 'strtolower'); などとして、
確認画面では既にPOSTされた値を小文字に変換して表示させたい時などは、
このままの実装(freeze)では厳しいでしょうか...。

よろしくお願い致します。



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