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
-~----------~----~----~----~------~----~------~--~---