しかも動的なものを。
場面としては、オンラインアドレス帳をイメージした。
要望としては
・複数ユーザーを同時に追加したい。
・1ユーザーに登録できる項目は増減できるようにしたい。
なんと嫌な仕様なんだ。。。
断ろう。。。
が、できなかった場合のために下記のようなものを考えました。
エラー文言もやっぱりFormを使って表示したいとなるとユーザーや項目追加はその都度ページをサブミットさせるしかないかな。。。
class Default_Form_Foo extends Zend_Form
{
public function init()
{
$this->addElementPrefixPath('Default_Plugin_Validate_' , '/plugins/Validate' , 'validate');
$this->addElementPrefixPath('Default_Plugin_Filter_' , '/plugins/Filter' , 'filter');
}
public function addSubForm($params)
{
$cnt1 = count($params);
foreach ($params as $key1 => $val2) {
unset($subForm1);
$subForm1 = new Zend_Form_SubForm();
foreach ($val1 as $key2 => $val2) {
unset($subForm2);
$subForm2 = $this->createSubForm();
$subForm1->addSubForm($subForm2, $key2);
}
$this->addSubForm($subForm1, $key1);
}
}
public function createSubForm ()
{
$subForm = new Zend_Form_SubForm();
$element = new Zend_Form_Element_Text('key1');
$subForm->addElement($element);
$element = new Zend_Form_Element_Text('key2');
$subForm->addElement($element);
return $subForm;
}
}
public function init ()
{
$form = new Default_Form_Foo();
$form->addSubForm(array(
'element1' => array(
'element1_1' => array(
'key1' => 'value1',
'key2' => 'value2',
)
)
));
}
0 件のコメント:
コメントを投稿