我遇到了zend表单的问题,我需要构建一个表单,其中字段名称相同但具有不同的所有物。这是我在表单中想要的输入字段。
目前我正在使用直接html,但正因为如此,我缺少验证。
<input type="text" name="travel_guide_tab[4][title]">
<input type="text" name="travel_guide_tab[4][description]">
<input type="text" name="travel_guide_tab[6][title]">
<input type="text" name="travel_guide_tab[6][description]">
答案 0 :(得分:0)
在Zend Form中,元素名称必须是唯一的(以某种方式),否则它们将被覆盖。但是,您可以继续使用html表单,只需使用Zend_Filter_Input在控制器中进行过滤和验证。 filter和validation类与Zend_Form使用的类相同,只是以不同的方式传递数据。
简单的例子,部分:
public function someAction() {
//set filters and validators for Zend_Filter_Input
$filters = array(
'nameOfInput' => array('HtmlEntities', 'StripTags')
);
$validators = array(
'nameOfInput' => array('NotEmpty', 'Int')
);
//assign Input
$input = new Zend_Filter_Input($filters, $validators);//can also pass the data in constructor (optional)
$input->setData($this->getRequest()->getParams());
//check input is valid and is specifically posted as 'Delete Selected'
if ($input->isValid()) {
//do some stuff
}
祝你好运。