radioボタンの名前
2006/08/21 | HTML_QuickForm
QuickFormのradioボタンのname属性で、つまらない試行錯誤をしてしまった。
radioやcheckboxのようなフォームの要素を作成するときは以下のように、
$item=array();
$item[]=& HTML_QuickForm->createElement(‘radio’,’name1′);
$item[]=& HTML_QuickForm->createElement(‘radio’,’name2′);
$myForm->addGroup($item,’nameG’);
要素をそれぞれ作成して、addGroupするのがわかりやすい。
しかし上記のような名前属性をつけるとプログラム上はグループ化されているが、HTMLになったときに、それぞれのラジオボタンは連動して動作してくれない。HTMLのソースを見ればわかるが、2つのラジオボタンのname属性が異なる値になっているからだ。ラジオボタンが連動するためにはname属性に同じものが指定されていることが原則だ。こういうときは以下のように指定する。
$item=array();
$item[]=& HTML_QuickForm->createElement(‘radio’,NULL);
$item[]=& HTML_QuickForm->createElement(‘radio’,NULL);
$myForm->addGroup($item,’nameG’);
ラジオボタンの各項目で名前属性に相当する部分にNULLを指定すればよい。