zend验证多选框

时间:2011-04-23 13:46:15

标签: php zend-framework zend-form zend-validate

我在表单中使用了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;
}
}

但我怎样才能解决错误?

1 个答案:

答案 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');