Заполните дату в элементе MultiOptions формы Zend - PullRequest
0 голосов
/ 22 августа 2009

Здравствуйте, у меня есть такой массив:

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

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

'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 не отображается ни одной записи.

Ответы [ 3 ]

1 голос
/ 24 августа 2009

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

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

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

1 голос
/ 23 августа 2009

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

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

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

Например

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

$select = Zend_From_Element_Select("select_field");
$select->multiOptions($options);
0 голосов
/ 14 октября 2010

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

Массив (

[id] => 1
[code] => Dep98
[description] => Hello World
[средство] => Массив (
FacName1 => [0]
FacName2 => [1]
)
)

...