2009-08-22 2 views
0

Привет У меня есть массив как это:дата Populate в MultiOptions элемент Zend Form

Array ( 
    [id] => 1 
    [code] => Dep98 
    [description] => Hello World 
    [facility] => Array ( 
    [0] => FacName1 
    [1] => FacName2 
) 
) 

Но когда я заполнить этот массив Zend_Form это только показать данные в текстовые поля элементов, имеющих такой же идентификатор, как определено в индекс массива не в выпадающем элементе multiselect. например:

 
'code'  id is also define in form's first textbox element, 
'description' id is also define in form's second textbox element, 
'facility' id is also define in form's third MultiOptions element 

Но в MultiOptions он не показывает никаких записей.

+0

могли бы вы показать код, который вы используете для создания элемента/населения? – gnarf

ответ

1

Что именно вы хотите в раскрывающемся списке?

Массив, который вы передаете multiOptions, должен быть в виде значения => title.

Возможно, вы захотите просмотреть результаты и создать массив параметров.

Например

$options = array(); 
foreach ($data as $value) {  
    $options[$value['id']] = $value['description']; 
} 

$select = Zend_From_Element_Select("select_field"); 
$select->multiOptions($options); 
1

Я согласен с Трэвисом, вы должны передать массив со следующими значениями для заполнения:

$vals = array('code'=>5, 
       'description' => 'testing', 
       'facility' => array(1=>'FacName2')); 
$form->populate($vals); 

Но заметьте это - параметры должны быть заполнены в виде объекта элемент , прежде чем пытаться заполнить или подтвердить, не ожидайте, что значение объекта будет установлено, если в элементе объекта есть пустой список параметров.

0

Попробуйте это:

Array (

[ID] => 1
[код] => Dep98
[далее] => Hello World
[объект] = > Массив (
FacName1 => [0]
FacName2 => [1]
)
)

Смежные вопросы