Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai dans ma classe de formulaire le champs suivant
$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
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 :
<select> <option value="France">France</option> </select>
Et avec ça, ça marchera :
<select> <option value="0">France</option> </select>
Voilà
Dernière modification par exd (03-06-2009 15:41:21)
Hors ligne
Salut
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 :
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 :
<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
Eh bien c'était ça
un petit trim() et c'est reglé.
Comme quoi un var_dump, c'est toujours utile
Hors ligne
Merci d'avoir fait part de tas solution ;-)
n'oublis pas de mettre [Resolu] sur le sujet (edit du premier post)
++
Hors ligne
Pages: 1