Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-04-2010 10:38:18

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

comment faire pour appeler un hidden égale à un autre champs

Bonjour,

J'ai un champ 'username' dans un formulaire, en faisant une mise à jour, il est possible de le modifier.

Alors l'idée, c'est de faire un champ hidden 'username_old' avec la valeur initial pour la comparer avec le champ ‘username’, et faire des modifications si il y a changement.
C'est mieux que d'interroger la base, car elle est assez compliquer et il faut plusieurs requêtes.

Code:

        $user = new Form_EText('user_username', 'User');  

        $user_old = new Zend_Form_Element_Hidden('user_username');  ------> il contient la meme chose que $user

        $this->addElements(array($id,$user_old,$user,$submit));

Form_EText est un helper que je me suis fais car la validation d'un camp texte est presque toujours pareille.


Maintenant dans une classe métier je fais :

Code:

        //on prend le nom et le nom caché
        $username = $form['user_username'];
        $username_old = $form['user_old'];  // ------> ne marche pas
        
        //si différent au champs caché
        if ($username != $username_old) {
            etc ...

La réponse de Zend est :

Notice: Undefined index: user_old in C:\wamp\www\appli\application\models\DbTable\Item.php on line 110

Je m'y attendais,
De plus je ne pense pas qu'il faut donner le même nom

Code:

        $username = $form['user_username'];
        $username_old = $form['user_username'];  // ------> confusion

Maintenant la question est : Que dois-je faire pour garder l'ancienne valeur et la consulter quand je veux ?

Dernière modification par maryooman (13-04-2010 10:40:53)

Hors ligne

 

#2 13-04-2010 11:32:39

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: comment faire pour appeler un hidden égale à un autre champs

J'ai trouvé en regardant les méthode des classe Zend_Form_Element  (merci l'auto-complétion^^)

Code:

        $user = new Form_EText('user_username', 'Username');

        $user_old = new Zend_Form_Element_Hidden('user_old');
        $user_old->setValue($user->getValue());

voilà !!

Dernière modification par maryooman (13-04-2010 11:33:24)

Hors ligne

 

#3 13-04-2010 13:27:28

NewSky
Membre
Date d'inscription: 17-12-2007
Messages: 79

Re: comment faire pour appeler un hidden égale à un autre champs

Salut,
merci de mettre [Résolu] dans le sujet de ton post :A LIRE POUR TOUS!!!!! les sujets résolus

Hors ligne

 

#4 21-04-2010 15:35:38

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: comment faire pour appeler un hidden égale à un autre champs

Bonjour,


en fait cela ne fonctionne pas, j'ai pris du temps à m'en rendre compte comme j'étais sur autre chose.

Code:

array(16) {
  ["item_id"] => string(2) "10"
  ["user_old"] => string(0) ""
  ["user_username"] => string(6) "test"
  etc ...
}

comme vous le constater le champs user_old est vide !

alors $user_old->setValue($user->getValue()); ne fonctionne pas.
Me revoilà au même point de départ!


EDIT: pour être précis c'est $user->getValue() qui ne fonctionn pas, si je le remplace par une chaine de caratères c'est ok

EDIT2 : j'ai contourner le problème en demandant à la base, c'est un acceès inutile puisque l'info je l'ai mais je n'arrive pas à m'en servire...

Dernière modification par maryooman (26-04-2010 10:26:15)

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