问题
Am trying to add options in my Zend_Form_Element_Select element
$monthvalues = new Zend_Form_Element_Select('month_values');
$table = new Model_DbTable_Options();
$monthvalues->addMultiOptions($table->Months())
In my Model_DbTable_Options model I have
public function Months()
{
$array = array(
'01' => 'Jan',
'02' => 'Feb',
'03' => 'Mar',
'04' => 'Apr',
'05' => 'May',
'06' => 'Jun',
'07' => 'Jul',
'08' => 'Aug',
'09' => 'Sep',
'10' => 'Oct',
'11' => 'Nov',
'12' => 'Dec',
);
return $array;
}
It aint giving me the desired outcome. Whats missing?
回答1:
Create Array like this
$myArray = array( 'NULL' => 'Select Month',
'1' => 'Jan',
'2' => 'Feb',
'3' => 'Mar',
'4' => 'Apr',
'5' => 'May',
'6' => 'Jun',
'7' => 'Jul',
'8' => 'Aug',
'9' => 'Sep',
'10' => 'Oct',
'11' => 'Nov',
'12' => 'Dec'
);
Create element like this:
$selectElement = $this->CreateElement('select', 'months');
$selectElement->setLabel('Label');
$selectElement->addMultiOptions( $myArray );
回答2:
Be careful! If you add a NULL value like this to your Zend Form your $model that you will save will have the value string(4) "NULL"
//in the form
$task->addMultiOption('NULL','');
//as it appears in html
select id="fk_id_task_task" name="fk_id_task_task" option label="" value="NULL" /option
//model from form values
$values = $form->getValues(); $model->fromArray($values, true);
//dump the $model and you end up with string(4) "NULL"
$model->fk_id_task_task = string(4) "NULL"
来源:https://stackoverflow.com/questions/2571009/addmultioption-array-problem-in-zend