0

こんにちは私はこのような配列を持っています:

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

しかし、この配列をZend_Formに入力すると、複数選択ドロップダウン要素ではなく、配列インデックスで定義されたものと同じIDを持つテキストボックス要素のデータのみが表示されます。例えば:

'code' idは、フォームの最初のテキストボックス要素でも定義されます。
'description' idは、フォームの2番目のテキストボックス要素でも定義されます。
'facility' idは、フォームの3番目のMultiOptions要素でも定義されます

ただし、MultiOptionsではレコードは表示されません。

4

3 に答える 3

1

Travisに同意します。次の値を含む配列を渡して、データを入力する必要があります。

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

ただし、これに注意してください。入力または検証を試みる前に、ファシリティフォーム要素にオプションを入力する必要があります。ファシリティ要素にオプションの空のリストがある場合、ファシリティ値が設定されることを期待しないでください。

于 2009-08-24T05:52:40.197 に答える
1

ドロップダウンボックスで正確に何をしたいですか?

multiOptions に渡す配列は、値 => タイトルの形式でなければなりません。

結果をループして、オプション配列を生成することができます。

例えば

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

$select = Zend_From_Element_Select("select_field");
$select->multiOptions($options);
于 2009-08-23T00:31:04.663 に答える
0

これを試して:

配列 (

[ID] => 1
[コード] => Dep98
[説明] => Hello World
[施設] => 配列 (
FacName1 => [0]
FacName2 => [1]
)
)

于 2010-10-14T16:14:54.210 に答える