Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-06-2009 13:00:41

supertino7
Membre
Date d'inscription: 21-02-2009
Messages: 113

[Zend Form] Re-populate un champs select

Bonjour,

j'ai dans ma classe de formulaire le champs suivant

Code:

$liste = $file->getData('pays');

$this->addElement('select', 'inscription_societepays',
                          array('MultiOptions' => $liste,
                                  'RegisterInArrayValidator' => false,
                                  'required' => true,
                                  'label' => 'Pays')
                          );

$liste est un tableau pompé d'un fichier texte, ici en l'occurence la liste des pays.
Le pb est que lorsque le formulaire est invalide, il me repopulate bien tous les champs texte, sauf les listes select, qu'il me replace automatiquement à la 1ere option.

Est ce qu'il manque une ligne de code, ou dois-je forcément passer la valeur en paramètre depuis le controleur ?

merci pour vos réponses.

Hors ligne

 

#2 03-06-2009 15:40:22

exd
Nouveau membre
Date d'inscription: 03-06-2009
Messages: 1

Re: [Zend Form] Re-populate un champs select

Salut,

Il faut que le nom du champ dans la bd soit le même que le nom du select.

Par exemple, dans ma table "societe" j'ai un champ nommé "pays_id" (0 => France, 1 => Espagne, etc)
Il faut que mon select s'appelle "pays_id" et que l'attribut <value> du select corresponde à l'identifiant du pays.
Genre avec ça, ça ne marchera pas :

Code:

<select>
<option value="France">France</option>
</select>

Et avec ça, ça marchera :

Code:

<select>
<option value="0">France</option>
</select>

Voilà smile

Dernière modification par exd (03-06-2009 15:41:21)

Hors ligne

 

#3 04-06-2009 11:40:58

supertino7
Membre
Date d'inscription: 21-02-2009
Messages: 113

Re: [Zend Form] Re-populate un champs select

Salut smile
merci pour ton aide.

Seulement, je ne pompe pas de données depuis une base de données, mais depuis un fichier texte.
Le tableau stocké dans $liste donne ça :

Code:

array(243) { 
[" "]=>  string(2) " " 
["France "]=>  string(8) "France " 
["Belgique "]=>  string(10) "Belgique "
...
}

puis transmis à l'element select du Zend Form , ce qui génère le code html suivant :

Code:

<select id="pays" name="pays">
<option label="" value=""> </option>
<option label="France" value="France">France </option>
<option label="Belgique" value="Belgique">Belgique </option>
...

Voila pourquoi je ne comprends pas pourquoi le populate ne fonctionne pas.


edit : ah tiens, je constate que dans l'array, il y a un espace qui traine dans le key o_O

Dernière modification par supertino7 (04-06-2009 11:41:48)

Hors ligne

 

#4 04-06-2009 11:43:53

supertino7
Membre
Date d'inscription: 21-02-2009
Messages: 113

Re: [Zend Form] Re-populate un champs select

Eh bien c'était ça big_smile
un petit trim() et c'est reglé.

Comme quoi un var_dump, c'est toujours utile smile

Hors ligne

 

#5 04-06-2009 13:44:50

_Fuse_
Membre
Lieu: Aquitaine
Date d'inscription: 10-07-2008
Messages: 92

Re: [Zend Form] Re-populate un champs select

Merci d'avoir fait part de tas solution ;-)

n'oublis pas de mettre [Resolu] sur le sujet (edit du premier post)

++

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages