Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-03-2011 10:53:30

kev0783
Nouveau membre
Date d'inscription: 14-03-2011
Messages: 4

[ZendFORM] Enregistrer la valeur d'un element encadré par un IF

Bonjours après de multiple recherche, je n'ai pas trouvé comment résoudre mon problème.

Voila, j'ai un formulaire et je veux ajouter des éléments en fonction de condition saisie sur un formulaire précédent. Pour réaliser j'ai mis en place un test avec un SI.

Code:

                if($attrib4n != null)
        {
            if($attrib4t != null)
            {
                    $attrib4 = new Zend_Form_Element_Select('DOC_ATTRIB4');
                    $attrib4->setMultiOptions($attrib4t);
                    $attrib4->setLabel($attrib4n);
                    $attrib4->setRequired(true)
                       ->addFilter('StripTags')
                       ->addFilter('StringTrim')
                                  ->addValidator('NotEmpty',true);
            }
                else
                { 
                    $attrib4 = new Zend_Form_Element_Text('DOC_ATTRIB4');            
                    $attrib4->setLabel($attrib4n);
                    $attrib4->setRequired(true)
                            ->addFilter('StripTags')
                            ->addFilter('StringTrim')
                            ->addValidator('NotEmpty',true);                
                }
            $attrib4 ->setDecorators($elementDecorators);                    
            $this->addElements(array($attrib4));                    
}

L'affichage se fait exactement comme je veux. Mais je ne sais pas pourquoi, lorsque j'envoie mon formulaire, tous les champs sauf celui la s'enregistrent dans ma bdd.
Une personne aurait une idée d'où peut venir ce problème.

Dernière modification par kev0783 (16-03-2011 10:06:17)

Hors ligne

 

#2 14-03-2011 13:41:37

kev0783
Nouveau membre
Date d'inscription: 14-03-2011
Messages: 4

Re: [ZendFORM] Enregistrer la valeur d'un element encadré par un IF

maintenant je sais que le problème vient que mon élément est dans une condition "if" car ce code marche.

Code:

                    $attrib3 = new Zend_Form_Element_Select('DOC_ATTRIB3');
                       $attrib3->setMultiOptions($attrib3t);
                    $attrib3->setLabel($attrib3n);
                    $attrib3->setRegisterInArrayValidator(false)
                               ->addFilter('StripTags')
                               ->addFilter('StringTrim')
                               ->addValidator('NotEmpty',true);
                               $this->addElements(array($attrib3));
                       $attrib3 ->setDecorators($elementDecorators);

alors que celui la ne marche pas

Code:

if($attrib3n != null && $attrib3t != null)
            {            
                    $attrib3 = new Zend_Form_Element_Select('DOC_ATTRIB3');
                       $attrib3->setMultiOptions($attrib3t);
                    $attrib3->setLabel($attrib3n);
                    $attrib3->setRegisterInArrayValidator(false)
                               ->addFilter('StripTags')
                               ->addFilter('StringTrim')
                               ->addValidator('NotEmpty',true);
                               $this->addElements(array($attrib3));
                       $attrib3 ->setDecorators($elementDecorators);                              
            }

Pour le deuxième l'affichage se fait correctement, donc mon élément est bien ajouté mais la valeur que je saisie n'est pas enregistrée dans la bdd.
Personnne n'a une idée?

Hors ligne

 

#3 16-03-2011 10:08:14

kev0783
Nouveau membre
Date d'inscription: 14-03-2011
Messages: 4

Re: [ZendFORM] Enregistrer la valeur d'un element encadré par un IF

Personne sait pourquoi lorsque j'encadre mon élément par un IF, je ne peux plus enregistrer ma valeur dans ma bdd ?

Hors ligne

 

#4 16-03-2011 14:18:51

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: [ZendFORM] Enregistrer la valeur d'un element encadré par un IF

Peut être un piste,
le passage des paramètres $attrib3n & $attrib3t au formulaire:
exemple :

Code:

// l'appel 
$form = new Form($this->_getParam('attrib3n'), $this->_getParam('attrib3t'));

Dans ce cas lorsque tu arrive sur cette page avec tes paramètres en GET ou POST ils sont effectivement présents, hors lorsque que tu POST ton formulaire ils ne le sont plus donc la condition n'est plus remplis pour ces éléments.
Dans ce cas tu peux ajouter un statu à la création:

Code:

// l'appel depuis le premier formulaire
$form = new Form($this->_getParam('attrib3n'), $this->_getParam('attrib3t'));

// construteur du formulaire
public function __construct($attrib3n, $attrib3t, $state='create'){
...
    if(($attrib3n != null && $attrib3t != null) || $state === 'post')
        // dans ce cas la condition passera si le @state est égale à "post"
...
}
// appel lors du post
$form = new Form($this->_getParam('attrib3n'), $this->_getParam('attrib3t'), 'post');

Ce ne sont que des suppositions car le code n'est pas complet.


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

Hors ligne

 

#5 16-03-2011 16:23:46

kev0783
Nouveau membre
Date d'inscription: 14-03-2011
Messages: 4

Re: [ZendFORM] Enregistrer la valeur d'un element encadré par un IF

Merci Dede de ta réponse mais ca ne peut pas être ca. Je n'ai pas posté le code entier car il y a 450 ligne. ^^
Car tout d'abord mais variable $attrib3n & $attrib3t sont initialisées dans mon formulaire.
Ensuite les variables sont bien initialisées car mon élément est bien ajouté au formulaire et les valeurs dans mon select sont bonnes. L'ajout de mon élément ce fait dans mon IF .
Pas d'autre idée???

Hors ligne

 

#6 16-03-2011 19:05:29

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: [ZendFORM] Enregistrer la valeur d'un element encadré par un IF

Essaie un var_dump() de ta variable avant le IF au moment ou tu post le formulaire voir ce que ça donne.


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

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