2009-08-22 7 views
0

Bonjour J'ai un tableau comme celui-ci:date de Populate dans l'élément MultiOptions du formulaire Zend

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

Mais quand je remplir ce tableau pour Zend_Form il uniquement les données montrent des éléments de zones de texte ayant même identifiant tel que défini dans l'index de tableau non dans l'élément de liste déroulante multisélect. par exemple:

 
'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 

Mais dans MultiOptions il n'affiche aucun enregistrement.

+0

Pourriez-vous montrer peut-être le code que vous utilisez pour la création d'élément/population? – gnarf

Répondre

1

Que voulez-vous exactement dans la liste déroulante?

Le tableau que vous passez à multiOptions doit être sous la forme value => title.

Vous voudrez peut-être parcourir vos résultats et générer un tableau d'options.

Par exemple

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

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

Je suis d'accord avec Travis, vous devriez passer un tableau avec les valeurs suivantes pour remplir:

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

Mais notez ce - options doivent être remplies sous la forme d'installation élément avant de tenter de remplir ou de valider, ne vous attendez pas à ce que la valeur de facilité soit définie s'il existe une liste vide d'options dans l'élément facility.

0

Essayez ceci:

Array (

[id] => 1
[code] => Dep98
[description] => Bonjour tout le monde
[installation] = > Tableau (
FacName1 => [0]
FacName2 => [1]
)
)

Questions connexes