Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-02-2010 11:00:34

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

passage de parametres

Bonjour,
mon problème est que j'ai 1 formulaire que j'instancie dans premierAction(). Maintenant, lorsque je valide mon formulaire,je voudrai récupérer les valeurs dans deuxiemeAction() et rendre le résultat a la vue deuxieme.phtml
j'ai essayer d'utiliser setAction mais sans succès.
Remarque : j'ai pris la peine de chercher avant d'atterrir ici.
Merci

Dernière modification par patiecco (04-03-2010 10:23:15)

Hors ligne

 

#2 27-02-2010 11:24:24

StefC30
Membre
Date d'inscription: 28-03-2008
Messages: 35

Re: passage de parametres

Bonjour Patiecco,

Peut-être en utilisant la redirection :

$this->_helper->redirector('ACTION', 'CONTROLLEUR', null, array('PARAMETRE1'=>'VALEUR1','PARAMETRE2'=>'VALEUR2'));

@+

Stéphan.

Hors ligne

 

#3 27-02-2010 12:32:59

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: passage de parametres

Pourquoi ne pas tout simplement mettre deuxiemeAction dans le champ action du formulaire ?

Hors ligne

 

#4 27-02-2010 12:39:47

yvann
Membre
Date d'inscription: 24-07-2008
Messages: 81

Re: passage de parametres

patiecco a écrit:

Bonjour,
mon problème est que j'ai 1 formulaire que j'instancie dans premierAction(). Maintenant, lorsque je valide mon formulaire,je voudrai récupérer les valeurs dans deuxiemeAction() et rendre le résultat a la vue deuxieme.phtml
j'ai essayer d'utiliser setAction mais sans succès.
Remarque : j'ai pris la peine de chercher avant d'atterrir ici.
Merci

Et c'est pourtant bien la solution à utiliser. Es-tu certains de l'avoir bien renseigné ?

Hors ligne

 

#5 27-02-2010 12:56:19

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

Afin je crois l'avoir bien fait !!!! j'ai mis : $this->setAction('index/deuxieme');
La redirection se déroule normalement je n'arrive pas a récupérer les valeurs du formulaire.
Je vais néanmoins ressayer.
Merci.

Dernière modification par patiecco (27-02-2010 14:00:38)

Hors ligne

 

#6 27-02-2010 17:59:35

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

En fait, quand j'essaie de récupérer les valeurs postées dans deuxiemeAction(), il ya une erreur du fait que le formulaire n'est pas connu dans deuxiemeAction(); ce qui semble être logique car il n'y a pas été instancié.
Dans ce bout de code, le formulaire est instancie et tranmis a la vue dans indexAction(). Cependant, apres validation du formulaire, les données doivent être recueillies dans accueilAction(). Du coup, il ya l'erreur suivante Undefined variable: leformulaire in........... dans accueilAction().

public function indexAction()
{
     $leformulaire = new FormulaireNouvelleInscription();
     $this->view->form = $leformulaire ;
}



public function accueilAction()
{
      if($this->getRequest()->isPost())
      {
          if($leformulaire->isValid($_POST))
           {
                $data = $leformulaire->getValues();
                $this->view->title = "SUCCES";
           }
      }
}

Merci d'avance

Dernière modification par patiecco (27-02-2010 18:17:28)

Hors ligne

 

#7 28-02-2010 23:30:46

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: passage de parametres

Déjà : $this->setAction('/index/deuxieme'); N'oublie pas le premier /.

Ensuite, si je comprends bien tu affiches ton formulaire dans premiereAction et tu le traites dans deuxièmeAction ?

Donc :

Code:

public function premiereAction()
{
   $form = new MonFormulaire();

   $this->view->form = $form;
}

Puis tu récupères les valeurs dans ton deuxième action :

Code:

public function deuxiemeAction()
{
   $form = new MonFormulaire();
   if ($this->getRequest()->isPost())
   {
      if ($form->isValid($this->getRequest()->getPost())
      {
         $data = $form->getValues();
      }
   }
}

Hors ligne

 

#8 28-02-2010 23:33:21

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: passage de parametres

Ou alors tu peux également crééer ton formulaire dans la fonction init() qui est appelée pour chaque action, si ça t'ennuie d'avoir la ligne $form = new MonFormulaire dans toutes les actions. Mais le fait est qu'en le créant dans les actions ou tu t'en sers uniquement ça t'évite de le créer dans les actions ou tu ne t'en sers pas.

Hors ligne

 

#9 01-03-2010 07:50:32

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: passage de parametres

c'est pas plutôt $this->form->setAction(); ??
vu que c'est une fonction du formulaire et non de la vue.

Hors ligne

 

#10 01-03-2010 14:44:16

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: passage de parametres

La session est la seule manière de conserver les données entre deux requêtes wink

Hors ligne

 

#11 02-03-2010 11:38:59

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

throrin19 a écrit:

c'est pas plutôt $this->form->setAction(); ??
vu que c'est une fonction du formulaire et non de la vue.

Bonjour throrin19,
ta réponse n'est pas toutafait fausse a mon avis, c'est un problème d'emplacement et de portee : ici, nous sommes dans notre formulaire et dans ce cas, nous faisons $this->setAction('url');
Par contre quand nous sommes par exemple dans indexAction(), nous pouvons ecrire : $form->setAction('url');

Hors ligne

 

#12 02-03-2010 11:43:17

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

bakura a écrit:

Déjà : $this->setAction('/index/deuxieme'); N'oublie pas le premier /.

Ensuite, si je comprends bien tu affiches ton formulaire dans premiereAction et tu le traites dans deuxièmeAction ?

Donc :

Code:

public function premiereAction()
{
   $form = new MonFormulaire();

   $this->view->form = $form;
}

Puis tu récupères les valeurs dans ton deuxième action :

Code:

public function deuxiemeAction()
{
   $form = new MonFormulaire();
   if ($this->getRequest()->isPost())
   {
      if ($form->isValid($this->getRequest()->getPost())
      {
         $data = $form->getValues();
      }
   }
}

bonjour bakura,
j'ai teste ta solution et cela marche tres bien a part ke o lieu de $this->setAction('/index/deuxieme'); j'ai mis $this->setAction('deuxieme');
Merci beaucoup.

Hors ligne

 

#13 02-03-2010 11:49:12

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

StefC30 a écrit:

Bonjour Patiecco,

Peut-être en utilisant la redirection :

$this->_helper->redirector('ACTION', 'CONTROLLEUR', null, array('PARAMETRE1'=>'VALEUR1','PARAMETRE2'=>'VALEUR2'));

@+

Stéphan.

Bonjour Stéphan,
je suis entrain de tester ta solution,mais je me suis heurté a quelques problèmes. Cependant, je compte aller jusko bout.
A tres bientot et merci encore.

Hors ligne

 

#14 04-03-2010 10:20:47

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: passage de parametres

Bonjour,
je reviens sur la discussion parce que le passage de paramètres se déroule normalement. Mais depuis lors, validateurs et filters ne fonctionnent plus.J'ai presque épuisé mes ressources.
Merci

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