IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Problème de formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut Problème de formulaire
    Bonjour.

    Sur la home de mon site je possède une liste d'articles.
    Quand je clique sur un des articles je fais donc appel à mon executeShow qui affiche les détails de l'article avec en dessous un formulaire de commentaires.

    Je fais ceci dans mon action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->comment_form = new CommentForm();
    Dans la template showSucess.php (qui contient donc les détails d'un post -> $post) j'affiche donc en bas de mon article un partial qui m'affiche mon formulaire de commentaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include_partial('form_comment', array('form' => $comment_form)) ?>
    L'action de mon formulaire fait appel à l'action ci dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function executeCreatecomment(sfWebRequest $request)
      {
        $this->forward404Unless($request->isMethod(sfRequest::POST));
     
        $this->comment_form = new CommentForm();
     
        $this->processForm($request, $this->comment_form);
     
       // que mettre ici ???
      }
    Comment faire pour lors de la soumissions (on oublie de remplir un champs obligatoire par exemple) pouvoir revenir sur ma page show avec le formulaire qui affiche mon formulaire avec la liste des erreurs?

    Si dans executeCreatecomment à la fin je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getPartial('form_comment', array('form' => $this->comment_form))
    du coup je vois bien le formulaire qui affiche les erreurs mais je perd les détails du post car seul le partial s'affiche, du coup je tourne en rond et je sais pas comment gérer le formulaire + sa validation et laisser afficher les details de mon post au dessus.

    SI vous avez des astuces je suis preneur.

    Merci

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tous le code de vérification est inclus dans le form, le code de sauvegarde aussi.

    A ta place, je créerais une action dans mon module article, action du genre executeAddComment, qui fait la vérification et prépare les données comme le template show article.

    Et si tu dois ré-afficher, tu bascules sur le template show.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Tous le code de vérification est inclus dans le form, le code de sauvegarde aussi.

    A ta place, je créerais une action dans mon module article, action du genre executeAddComment, qui fait la vérification et prépare les données comme le template show article.

    Et si tu dois ré-afficher, tu bascules sur le template show.
    Je vois pas ce que ca pourrait changer en fait.

    Quand je vais etre sur ma page show j'aurais en bas un formulaire d'ajout de commentaires qui aura comme action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo url_for('post/addcomment') ?>" method="post">
    Si je rebascule sur le template show, tu veux dire que je dois faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->setTemplate('show')
    mais ca va refaire la meme chose, quand je vais aller sur mon template show, les erreurs de mon formulaire ne seront pas visibles non?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Si parce que tu as binder ton form avec les données récupérées. Donc les erreurs seront générées.

    Et comme tu auras récupérés les données de l'article, toute la page pourra être visible.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Si parce que tu as binder ton form avec les données récupérées. Donc les erreurs seront générées.

    Et comme tu auras récupérés les données de l'article, toute la page pourra être visible.
    Ton executeAddComment ne serait pas équivalent à mon executeCreatecomment?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public function executeCreatecomment(sfWebRequest $request)
      {
        $this->forward404Unless($request->isMethod(sfRequest::POST));
     
        $this->comment_form = new CommentForm();
     
        $this->processForm($request, $this->comment_form);
     
        //$this->setTemplate('show');
      }
     
    protected function processForm(sfWebRequest $request, sfForm $form)
      {
        if ($request->isMethod('post'))
         {
     
            $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
            if ($form->isValid())
            {
              $commentaire = $form->save();
              $this->redirect($this->generateUrl('post_show_detail', $commentaire));
            }
     
         }
      }
    Je vois pas la différence en fait avec ce que tu me dis.

    Tu pourrais mieux expliciter (genre deux trois lignes de code par ci par la, car au final j'ai l'impression qu'on fait la même chose), j'ai vraiment du mal à voir ce que tu insinues

    Merci à toi.

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A peu de chose près, sauf erreur de ma part (je me méfie à cet heure ci) tu ne récupère pas les données permettant d'afficher l'article.

    Bon, c'est une supposition, je ne sais pas ce que cache le template "post_show_detailSuccess" mais je ne vois pas où tu récupères les données nécessaire à l'affichage de l'article.

    Si je suis vraiment trop à côté, demains je ferais un truc plus précis.

Discussions similaires

  1. [IIS - TOMCAT][Struts] Problème de formulaire
    Par tscoops dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 01/02/2005, 14h04
  2. Réponses: 7
    Dernier message: 19/10/2004, 16h12
  3. [STRUTS] problème de formulaire
    Par ultimax dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/07/2004, 15h55
  4. [Struts] Problème de formulaire(s) ...
    Par djoukit dans le forum Struts 1
    Réponses: 8
    Dernier message: 10/03/2004, 23h48
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo