[PHP-users 23119]Re: HTML_QuickFormControllerのcheckboxの不審な挙動?

cxn03651 @ msj.biglobe.ne.jp cxn03651 @ msj.biglobe.ne.jp
2004年 8月 27日 (金) 16:58:36 JST


いしげ様

 ご教示ありがとうございました。

 もともと気づいたのは、他にも色々な部品(text, textarea等)をフォームに
配置してPOSTで呼び出したときに、textにはsetDefaults()で規定値が表示され
るのにcheckboxだけ規定値が反映されない、という現象に出会ったためでした。

 先ほどの再現ソースのうち、buildForm()をちょっといじって
    function buildForm()
    {
        $this->_formBuilt = true;
        $this->setDefaults( array('test' => true, 'textbox' => 'default string') );
        $this->addElement('checkbox', 'test', 'checkbox', 'checked ?');
        $this->addElement('text', 'textbox', 'textbox');
    }
}
のようにテキストボックスを加えたところ、GET、POST双方ともテキストボック
スにはsetDefaults()が効いています。

 その点からすると、

> GET  …… post で値を渡されていないので setDefaults() のものを使用
> POST …… post で渡された値を使用(値 "test" は渡されないので null)
> つまりどちらも仕様通りの動作をしていると思われます.

というのはちょっと?という気がするのですが。つまり、checkbox以外の部品に
はPOSTでもsetDefaults()のものを使用しているので。

                  中村(cxn03651 @ msj.biglobe.ne.jp)




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