我有一个'客户'表单,其中有一个名为'contacts'的部分。首先,此联系人部分将包含以下元素..
<input type="text" name="contacts[0][fname]" />
<input type="text" name="contacts[0][sname]" />
但是用户可能想要添加另一个联系人,该联系人将使用javascript复制元素以生成以下内容:
<input type="text" name="contacts[0][fname]" />
<input type="text" name="contacts[0][sname]" />
<br />
<input type="text" name="contacts[1][fname]" />
<input type="text" name="contacts[1][sname]" />
我知道如何制作第一组元素,但是如果表单被提交并且有错误,我如何确保呈现正确数量的“联系人”元素?
答案 0 :(得分:0)
我从来没有用Zend_Form做过这个,但我用Symfony 1.4的sfForm做了这个,它有一个类似的API和操作理论。基于此基本过程是:
在父窗体构造函数中初始化一些默认数量的子窗体。您需要将实际创建和嵌入n
子表单的逻辑分离出来,并将其嵌入到单独的方法中。我将此称为方法emebedContacts($count = 1)
覆盖父窗体上的isValid
和setDefaults
方法,以便它们检测传递给它们的$data
参数中的子窗体数,然后调用{{1}在致电embedContacts
或parent::isValid()
。
希望有所帮助。