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 à