Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-11-2008 19:24:28

Melunais
Nouveau membre
Lieu: Melun
Date d'inscription: 24-11-2008
Messages: 4

[Zend_Form] Populate/setValue d'un élément Select

Bonjour,
Je débute avec Zend et donc aussi avec Zend_Form. Je voudrais modifier un ou plusieurs champs d'une table sql à partir d'une ligne choisie. J'y arrive mais j'ai un petit problème quand il s'agit de manier l'élément Select.

Voilà l'action de mon controller :

Code:

    function artisteAction()
    {
        $this->view->title = "Modifier Artiste";

        $id = $this->_getParam('id', 0);

        $db = new Artiste();

        $form = new FormulaireAjouterArtiste();

        $artiste = $db->find($id)->current();
        
        $form->populate(array('nom'=>$artiste->nom,
                          'prenom'=>$artiste->prenom,
                          'anneeNaissance'=>$artiste->anneeNaiss));


        [...]

    }

J'arrive à remplir les éléments Text ( nom et prenom ) mais l'élément Select ( anneeNaissance ) reste en début de liste.

J'ai essayé avant ça mais cela n'a rien donné aussi :

Code:

$form->anneeNaissance->setValue($artiste->anneeNaiss);

Je ne pense pas être sur la bonne piste en donnant une valeur à une liste mais bon. J'ai fait des recherches avant de poster mais je n'ai rien trouvé à ce propos exactement.

Merci d'avance.

Dernière modification par Melunais (27-11-2008 16:22:39)

Hors ligne

 

#2 27-11-2008 09:11:21

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Populate/setValue d'un élément Select

C'est écrit dans la doc assez clairment pourtant..

$select->addMultiOptions


----
Gruiiik !

Hors ligne

 

#3 27-11-2008 15:16:02

Melunais
Nouveau membre
Lieu: Melun
Date d'inscription: 24-11-2008
Messages: 4

Re: [Zend_Form] Populate/setValue d'un élément Select

Ca marche. Je ne pensais pas à rajouter la valeur une fois de plus en début de liste. Bref, ca marche. ^^

Merci smile

Hors ligne

 

#4 27-11-2008 16:58:08

Melunais
Nouveau membre
Lieu: Melun
Date d'inscription: 24-11-2008
Messages: 4

Re: [Zend_Form] Populate/setValue d'un élément Select

Ha bah finalement pas vraiment. Avec addMultiOptions, si la valeur de l'élément que je veux rajouter à la liste y existe déjà alors rien ne s'y ajoute. Si sa valeur est différente ( ce qui ne m'intéresse pas ), l'élément se rajoute en fin de liste, ce qui n'est pas ce que je veux non plus.
Alors j'ai trouvé autre chose à faire qui marche même si ce n'est pas ce qu'il y a de mieux à faire je pense. Bref, en attendant mieux :

Dans mon controller :

Code:

        $form->anneeNaissance->clearMultiOptions();
        $form->anneeNaissance->addMultiOption($artiste->anneeNaiss, $artiste->anneeNaiss);
        for($i=1850;$i<2010;$i++)
        {
            $form->anneeNaissance->addMultiOption($i, $i);
        }

J'utilise clearMultiOptions() parce que j'utilise le formulaire à la fois pour l'ajout et la modification.
Ensuite voilà, j'ai l'élément et sa valeur que je veux en début de liste. smile

Voilà voilà big_smile

Hors ligne

 

#5 28-11-2008 09:27:23

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Populate/setValue d'un élément Select

Hmmm, je comprends pas la. (et même j'ai compris de travers ta question je crois ! désolé)

Donc, je récapitule :
Pour ajouter les options dans le select :
->addMultiOptions() ou la paire clé/valeur représent valeur/mot affiché

Ensuite, pour selectionner, normalement, ton populate devrait fonctionné si tu passes bien la valeur et non pas le mot à affiché.
Pareil pour setValue


----
Gruiiik !

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