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 à