我在表单中使用了zend验证,但我无法在表单中验证多选框。
这是我在表单中的多选元素:
$days = new Zend_Form_Element_Select('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty')
->setAttrib('multiple', 'multiple');
在表单提交过程中出现以下错误,即使我在多选框中选择了一些选项:
在haystack中找不到数组
我在Zend / Validate / InArray.php中看到以下代码,它只能验证单个表单元素,但不能验证数组:
public function isValid($value)
{
$this->_setValue($value);
if (in_array($value, $this->_haystack, $this->_strict))
{
return true;
}
}
但我怎样才能解决错误?
答案 0 :(得分:11)
要在表单中包含多个选择元素,您应该使用Zend_Form_Element_Multiselect,而不是Zend_Form_Element_Select,例如:
$days = new Zend_Form_Element_Multiselect('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty');