Ok honte à moi.... faut seulement rajouter les arguments dans l'url...

merci Nautile.

Le 15/06/07, lionel chanson <[EMAIL PROTECTED]> a écrit :
>
> Non je fais pas de soumissions intermédiaires.
>
> J'ai
> public function executeIndex()
>  {
>   if ($this->getRequest()->getMethod() != sfRequest::POST)
>   {
>     return sfView::SUCCESS;
>   }
>   else
>   {
>     $this->redirect('vente/list')
>   }
> }
> public function executeList()
> {
>  $dep = $this->getRequest->getParameter('departement');
>  $c = new Criteria();
>  $c->add(VillePeer::DEPT, $dep, Criteria::LIKE)
>  VillePeer::doSelect($c)
> }
>
> Mais je n'ai pas le parametre donc la requête est pas bonne.
>
> Merci.
> Lionel
>
>
>
> Le 15/06/07, nautilebleu <[EMAIL PROTECTED]> a écrit :
> >
> >
> > La méthode que je t'ai décrite fonctionne très bien quand on valide
> > directement l'ensemble du formulaire.
> > En fait au départ, j'avais compris que tu affichais une fois le
> > formulaire définitivement validé une autre page.
> >
> > Là, si je comprend bien, tu fais des soumissions intermédiaires?
> >
> > Si j'ai bien compris, je pense que la méthode que je t'ai décrite va
> > être un peu compliquée à mettre en oeuvre dans ce cas, car il
> > faudrait faire:
> > public function executeIndex()
> > {
> >    if ($this->getRequest()->getMethod() != sfRequest::POST)
> >    {
> >      //affiche le formulaire
> >      [...]
> >    }
> >    else
> >    {
> >      //prend en charge la sousmission du formulaire
> >      [...]
> >      switch ($case) {
> >        case 'departement':
> >           // code pour sélectionner les villes de ce département
> >           [...]
> >           // code pour afficher le formulaire (le même que dans le if,
> > ce qui veut dire que tu casses le principe DRY, sauf a mettre tout ce
> > code dans une methode et l'appeler 2 fois)
> >           [...]
> >           break ;
> >        case 'final'
> >           // insertion dans la base de données
> >           [...]
> >          // tout est OK
> >          $this->redirect(@vente_index') ;
> >      }
> >    }
> > }
> >
> > Autres solutions:
> > * faire plusieurs actions pour les différentes étapes (executeStep1,
> > executeStep2, etc.) de ton formulaire qui chargeront toutes le même
> > template xxxSuccess.php
> > * faire en Ajax la requête sur pour récupérer les villes si tu peux te
> > le permettre (Accessibilité, support navigateur, etc.) Quand on change
> > la valeur du champ département, tu fais une requête xmlHTTPRequest qui
> > retourne la liste des villes de ce département)
> >
> > Nautile
> >
> > On 15 juin, 16:44, "lionel chanson" < [EMAIL PROTECTED]> wrote:
> > > Ok j'essaye ta méthode, mais là je nage, y a un truc que je saisi pas.
> > >
> > > Disons que j'ai un champ departement. La personne rentre un chiffre et
> > je
> > > lui ressort toute les villes connues.
> > >
> > > Donc j'ai toute la partie contrôle pas de blem. Mais je comprend pas
> > trop ce
> > > que je dois faire ensuite.
> > >
> > > Si je renvoie le parametre pour executer la requete ? ou j'execute la
> > > requete et j'envoi le résultat ?
> > >
> > > Merci Nautile.
> > > Lionel
> > >
> > > Le 15/06/07, nautilebleu <[EMAIL PROTECTED]> a écrit :
> > >
> > > > En fait je pense que le problème c'est que tu postes les données
> > dans
> > > > une autre action que celle qui affiche le formulaire.
> > > > En fait, la "bonne" façon c'est de poster ton formulaire dans la
> > même
> > > > action que celle qui a écrit le formulaire.
> > > > Dans ton code tu aurais qqch du genre:
> > > > public function executeIndex()
> > > > {
> > > >   if ($this->getRequest()->getMethod() != sfRequest::POST)
> > > >   {
> > > >     //affiche le formulaire
> > > >     [...]
> > > >   }
> > > >   else
> > > >   {
> > > >     //prend en charge la sousmission du formulaire
> > > >     [...]
> > > >     // tout est OK
> > > >     $this->redirect(@vente_list') ;
> > > >   }
> > > > }
> > > > public function executeList()
> > > > {
> > > > }
> > >
> > > > Cela évitera le pb que tu as avec les formulaires et en outre, ça
> > > > empêche le visiteur de poster 2 fois le formulaire s'il recharge la
> > > > page.
> > >
> > > > Nautile
> > > > On 15 juin, 13:35, "lionel chanson" < [EMAIL PROTECTED]>
> > wrote:
> > > > > Salut,
> > >
> > > > > J'ai un module vente.
> > >
> > > > > Dans le fichier action j'ai
> > > > > executeIndex() dont le template affiche le formulaire.
> > > > > executeList() qui traite les données envoyées pour faire une
> > requête et
> > > > > affiche le résultat dans le template listSuccess
> > > > > handleErrorList() avec forward('vente', 'index')
> > > > > validateList() pour une vérification particulière
> > >
> > > > > J'ai mon fichier dans vente/validate/list.yml pour le contrôle de
> > la
> > > > saisie.
> > > > > J'ai rajouté fillin pour conserver les données en cas d'erreur.
> > >
> > > > > Dans ce fichier je met donc
> > >
> > > > > methods: etc...
> > > > > fields: etc...
> > >
> > > > > fillin:
> > > > >  enabled:     true
> > > > > etc....
> > >
> > > > > Tout fonctionne !
> > > > > Mais lorsque l'action list est effectuée dans logs and var de
> > symfony,
> > > > j'ai
> > > > > ces 3 lignes.
> > >
> > > > > 20[image: Info] Filterexecuting filter "sfFillInFormFilter"
> > 21[image:
> > > > Error]
> > > > >  ExceptionNo form found in this page 22[image: Error] FilterNo
> > form
> > > > found in
> > > > > this page
> > > > > Pour moi c'est normal, puisqu'il n'y a pas d'erreurs, j'affiche le
> >
> > > > résultat,
> > > > > pas le formulaire. Qu'est-ce qui cloche ?
> > >
> > > > > Merci
> > > > > Lionel
> >
> >
> > > >
> >
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à