2011-04-23 47 views
6

我在表單中使用zend驗證,我無法驗證表單中的多選框。zend驗證多選框

這是形式我多選擇元素:

$days = new Zend_Form_Element_Select('day'); 
$days->setLabel('Days') 
->addMultiOptions($total_days) 
->setRequired(true) 
->addValidator('NotEmpty') 
->setAttrib('multiple', 'multiple'); 

我表單提交過程中出現以下錯誤,甚至當我選擇在多選箱的一些選項:

在乾草堆中找不到陣列

,我看到在Zend公司/驗證/ InArray.php下面的代碼,可以驗證只有單一的形式元素,但不是數組:

public function isValid($value) 
{ 
$this->_setValue($value); 
if (in_array($value, $this->_haystack, $this->_strict)) 
{ 
return true; 
} 
} 

但我怎麼能解決這個錯誤嗎?

回答

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