[PHP-users 23430]Re: HTML_QUICKFORMのチェックボックスについて
ISIGE, Akira
xia @ silvia.com
2004年 10月 5日 (火) 10:29:14 JST
いしげ です.
On 2004/10/05 9:57:44 JST,
Yoshi <yoshi @ crack.jp> wrote:
> HTML/QuickForm/checkbox.phpのソースをみてみたところ、
> 66行目に
> $this->updateAttributes(array('value'=>1));
> と書かれていますが、1以外の値にすることはできないのでしょうか。
ご覧の通り,そのままでは 1 で固定です.
完全にお望みの動作にするには,
HTML_QuickForm_checkbox を extends したクラスを作って,
registerElementType() するのがベストだと思います.
そこまで手をかけずに似たことを楽にやるならば,
<?php
$check[] =& $form->addElement("checkbox",NULL,"チェックボックス1","ラベル1");
$check[] =& $form->addElement("checkbox",NULL,"チェックボックス2","ラベル2");
$check[] =& $form->addElement("checkbox",NULL,"チェックボックス3","ラベル3");
$form->addGroup($check, 'checkboxes', 'チェックボックス');
?>
これを
<?php
$check[] =& $form->addElement("checkbox","value1","チェックボックス1","ラベル1");
$check[] =& $form->addElement("checkbox","value2","チェックボックス2","ラベル2");
$check[] =& $form->addElement("checkbox","value3","チェックボックス3","ラベル3");
$form->addGroup($check, 'checkboxes', 'チェックボックス');
?>
にすると,array_keys($form->exportValue("checkboxes")) が
お望みのものと似たような配列になるかと思います.
unchecked なエレメントはキー自体が存在しなくなるのと,
PHP-users 23117 からのスレッドにある,setDefaults() にまつわる
微妙な挙動にご注意ください.
--
ISIGE, Akira
PHP-users メーリングリストの案内