[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 メーリングリストの案内