Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récuperation de la valeur d'un select

renvoyer vers une autre page

Sujet résolu
    16 janvier 2018 à 9:44:06

    Bonjour,
    je travaille sur Symfony2.7 un projet e-commerce, dans la partie détails d'un produit j'ai récupérer tout les données liées à cette article
    avec une liste des couleurs et une liste des tailles disponibles d'un article (chaque liste dans un select) .
    mon problème est de :
    1- récupérer la couleur et la taille sélectionnées par l'utilisateur 
    2- les envoyer en url pr exemple à la page panier (ou il existe les différents articles ajoutés) .

    details.html.twig

    <b>Couleur :</b>
                            <select id="co" >
                                {% for coul in produit.couleur %}
                                    <option value="{{ coul.nomc }}">{{ coul.nomc }}</option>
                                {% endfor %}
                            </select>
                        </p>                            
     
     
                        <p>
                            <b>Taille :</b>
                            <select id="ta" >
                                {% for ta in produit.taille %}
                                    <option value="{{ ta.tai }}">{{ ta.tai }}</option>
                                {% endfor %}
                            </select>
                        </p>
                        <p><b>Marque :</b> {{ produit.marque}}</p>
                        <p>
                            <a href="{{ path('ajouter', { 'id' : produit.id }) }}">
                                <button type="button" class="btn btn-fefault cart" >
                                    <i class="fa fa-shopping-cart"></i>
                                    Ajouter au Panier
                                </button>   
                            </a>

    Fonction dans mon controleur

    public function ajouterAction($id)
        {
            $session = $this->getRequest()->getSession();
     
            if (!$session->has('panier')) $session->set('panier',array());
            $panier = $session->get('panier');
     
     
            if (array_key_exists($id, $panier)) {
                if ($this->getRequest()->query->get('qte') != null) $panier[$id] = $this->getRequest()->query->get('qte');
                $this->get('session')->getFlashBag()->add('success','Quantité modifié avec succès');
            } else {
                if ($this->getRequest()->query->get('qte') != null)
                    $panier[$id] = $this->getRequest()->query->get('qte');
                else
                    $panier[$id] = 1;
                $this->get('session')->getFlashBag()->add('success','Article ajouté avec succès');
            }
            $session->set('panier',$panier);
     
     
            return $this->redirect($this->generateUrl('panier'));
        }

    merci pour vos aides


    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2018 à 10:17:01

      Bonjour,

      Ne serait il pas plus simple de faire un formulaire comme dans le cours ? Bien que basique tu pourrais faire tout ce dont tu souhaite en suivant les différentes façons de personnaliser ses formulaires. Utilise les formtype de symfony ça t'éviterai de devoir utiliser plusieurs fois {% for %} dans ton twig. Tu devras modifier ton controller pour aller ton Formtype. Je connais pas ton niveau en symfony mais je crois en toi ça devrait pas te prendre trop de temps à modifier ;).

      • Partager sur Facebook
      • Partager sur Twitter

      Tester c'est douter

        16 janvier 2018 à 10:38:37

        Merci OkazakiUshio , En fait les {% for %} c'est pour récupérer les couleurs disponibles de l'article (déja dans ma BD, ajoutés lors de la création d'un article) et déja j'utilise les formtype de symfony :

        public function buildForm(FormBuilderInterface $builder, array $options)
            {
                $builder
                    ->add('nom')
                    ->add('description')
                    ->add('marque', 'text', array('required' => false))
                    ->add('prix')
                    ->add('disponible')
                    ->add('qte')
                    ->add('categorie')
                    ->add('couleur', 'collection', array('type' => new CouleurType(), 'allow_add' => true, 'label' => false, 'required' => false, 'by_reference' => false))
                    ->add('taille', 'collection', array('type' => new TailleType(), 'allow_add' => true, 'label' => false, 'required' => false, 'by_reference' => false))
                    ->add('imga', 'file', array('data_class' => null))
                    ->add('image', 'collection', array('type' => new ImageType(), 'allow_add' => true, 'label' => false, 'required' => false, 'by_reference' => false))
        
                ;
            }

        y'a pas une autre méthode pour lister les couleurs et que l'utilisateur choisit puis au niveau de l'ajout au panier je veux juste mentionner la couleur (idm taille) dans mon panier ! 

        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2018 à 11:03:24

          Donc la c'est au niveau de ton controller il faut persister tes données ce que je ne vois pas dans ton controller(à moins que tu l'es pas montrer). De plus ce que tu vas envoyé ne passera pas dans l'url mais bien dans le formtype mais tu dois créer une vue pour lui dans ton controller ce que tu ne fais pas.

          ça donne un truc qui pour toi ferai:

          return $this->render('TonBundle:Produit:produit.html.twig',array(
                  'formProduit'=>$formProduit->createView()
          ));
          // il faut appeler ton formulaire dans ton controller et //le persister pour qu'il soit effectif



          • Partager sur Facebook
          • Partager sur Twitter

          Tester c'est douter

            16 janvier 2018 à 11:37:40

            ok , mais là les données de l'article sont dans panier, 

            donc c'est au moment du choix de l'utilisateur la couleur et la taille je dois ajouter son choix dans panier pour le récupérer apres nn ?

            pour etre plus pratique voici la démarche que je suis :

            Controleur du détails de l'article :

            public function detailsAction($id)
                {
            	$em = $this->getDoctrine()->getManager();
                    $produit = $em->getRepository('EcommerceEcommerceBundle:Produits')->find($id);
                    
                
                    
                    if (!$produit) throw $this->createNotFoundException('La page n\'existe pas.');
                    
                    
                    
                    return $this->render('EcommerceEcommerceBundle:Default:details.html.twig', array('produit' => $produit));
            }

            puis je récupère les details de l'article dans mon fichier details.html.twig :

            <div class="product-information">
            <!--/product-information-->
                                <h2>{{ produit.nom }}</h2>
                                <p>{{ produit.categorie.nomcat }}</p>
                                <p>{{ produit.description }}</p>
                                <span>
                                    <span>€ {{ produit.prix}}</span>
            
                                </span>
                                <p>
                                    
                                    <b>Couleur :</b>
                                    <select id="co" >
                                        {% for coul in produit.couleur %}
                                            <option value="{{ coul.nomc }}">{{ coul.nomc }}</option>
                                        {% endfor %}
                                    </select>
                                </p>                            
                                
                              
                                <p>
                                    <b>Taille :</b>
                                    <select id="ta" >
                                        {% for ta in produit.taille %}
                                            <option value="{{ ta.tai }}">{{ ta.tai }}</option>
                                        {% endfor %}
                                    </select>
                                </p>
                                <p><b>Marque :</b> {{ produit.marque}}</p>
                                <p>
                                    <a href="{{ path('ajouter', { 'id' : produit.id,'mar' : produit.marque }) }}">
                                        <button type="button" class="btn btn-fefault cart" >
                                            <i class="fa fa-shopping-cart"></i>
                                            Ajouter au Panier
                                        </button>   
                                    </a>
                                </p>
            
            
                            </div><!--/product-information-->

            Et pour ajouter au panier voici le controleur de l'ajout : 

            public function ajouterAction($id)
                {
                    $session = $this->getRequest()->getSession();
                    
                    if (!$session->has('panier')) $session->set('panier',array());
                    $panier = $session->get('panier');
                            
                    
                    if (array_key_exists($id, $panier)) {
                        if ($this->getRequest()->query->get('qte') != null) $panier[$id] = $this->getRequest()->query->get('qte');
                        $this->get('session')->getFlashBag()->add('success','Quantité modifié avec succès');
                    } else {
                        if ($this->getRequest()->query->get('qte') != null)
                            $panier[$id] = $this->getRequest()->query->get('qte');
                        else
                            $panier[$id] = 1;
                        $this->get('session')->getFlashBag()->add('success','Article ajouté avec succès');
                    }
                    $session->set('panier',$panier);
                    
                    
                    return $this->redirect($this->generateUrl('panier'));
                }

            Contoleur panier

            public function panierAction()
                {
                    
                    $session = $this->getRequest()->getSession();
                    if (!$session->has('panier')) $session->set('panier', array());
                     
                    $em = $this->getDoctrine()->getManager();
                    $produits = $em->getRepository('EcommerceEcommerceBundle:Produits')->findArray(array_keys($session->get('panier')));
                    
                    return $this->render('EcommerceEcommerceBundle:panier:panier.html.twig', array('produits' => $produits, 'panier' => $session->get('panier')));
                }

            et je récupére le contenu du panier dans panier.html.twig

            {% for produit in produits %}
                                    <tr>
                                        <form action="{{ path('ajouter', { 'id' : produit.id }) }}" method="get">
                                        <td class="cart_product">
                                            <a href=""><img src="{{asset('upload/produits/' ~ produit.id ~'/' ~ produit.imga)}}" alt="" width="110" height="110" ></a>
                                        </td>
                                        <td class="cart_description">
                                            <h4>{{ produit.nom }}</h4> 
                                        </td>
                                                                       
                                        <td class="cart_price">
                                            <p>{{ produit.prix }} €</p>
                                        </td>
                                        <td>
                                            <select name="qte" class="span1" onChange="this.form.submit()">
                                                {% for i in 1..20 %}
                                                    <option value="{{ i }}" {% if i == panier[produit.id] %} selected="selected" {% endif %}>{{ i }}</option>
                                                {% endfor %}
                                            </select>&nbsp;
                                        </td>
                                        <td class="cart_total">
                                            <p class="cart_total_price">{{ produit.prix * panier[produit.id] }}€</p>
                                        </td>
                                        <td class="cart_delete">
                                            <a class="cart_quantity_delete" href="{{ path('supprimer', { 'id' : produit.id }) }}"><i class="fa fa-times"></i></a>
                                        </td>
                                        </form>
                                    </tr>
                                    
                                    {% set totalTTC = totalTTC + (produit.prix * panier[produit.id]) %}
                                
                                       {% endfor %}
            
            
            
            
            
            







            -
            Edité par usherach 16 janvier 2018 à 11:42:51

            • Partager sur Facebook
            • Partager sur Twitter
              16 janvier 2018 à 13:27:47

              Je continue de dire que tu ne fais que des appels et tu ne persiste pas ^^.

              Tu fais tout bien sauf ça, faut vraiment que lise le cours parce qu'il te manque que ça.

              • Partager sur Facebook
              • Partager sur Twitter

              Tester c'est douter

                16 janvier 2018 à 13:41:51

                ok, je vais bien vérifier ce cours, une petite chose c'est dans le select : comment puis je récupérer la couleur et la taille choisit par l'utilisateur 

                j'ai utilisé un script 

                <script>
                                            function myFunction() {
                                                var x = document.getElementById("co").value;
                                                    document.getElementById("demo").innerHTML = x;
                                                }
                                        </script>

                mais par contre j'ai un probleme d'extraire le résultat de ce script pour le mettre dans une variable ou le récupérer !

                • Partager sur Facebook
                • Partager sur Twitter
                  16 janvier 2018 à 13:49:44

                  tu peux faire ça directement avec les fonctionnalités de symfony il suffit d'appelé les couleurs et les tailles depuis une entité, les mettre dans un formtype, puis appelé le formtype (et pas l'entité :p) dans ton twig. Tu peux ensuite choisir comment l'utilisateur va les voir et les données seront récupérer automatiquement lorsque l'utilisateur validera. Bon ça c'est pas dans le cours OC et je sais plus où j'ai trouvé comment faire.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Tester c'est douter

                    18 janvier 2018 à 10:59:44

                    Bonjour,

                    désolé pour le retard, j'ai fait des test partout :

                    j'ai ajouté un form pour le select couleur :

                    <form action="{{ path('ajouter', { 'id' : produit.id }) }}" method="get">
                                                <p>                        
                    
                                                    <b>Couleur :</b>
                                                    <select name="co">
                                                        {% for coul in produit.couleur %}
                                                            <option value="{{ coul.nomc }}">{{ coul.nomc }}</option>
                                                        {% endfor %}
                                                    </select>
                                                </p>                            
                                                    <p> 
                                                <b>Taille :</b>
                                                <select name="ta" >
                                                    {% for ta in produit.taille %}
                                                        <option value="{{ ta.tai }}">{{ ta.tai }}</option>
                                                    {% endfor %}
                                                </select>
                                            </p>
                                            <p><b>Marque :</b> {{ produit.marque}}</p>
                                            <p>
                                                <a href="{{ path('ajouter', { 'id' : produit.id }) }}">
                                                    <button type="button" class="btn btn-fefault cart" >
                                                        <i class="fa fa-shopping-cart"></i>
                                                        Ajouter au Panier
                                                    </button>   
                                                </a>
                                            </p>
                                            </form>


                    mais par contre dans le controleur, j'arrive pas à récupérer la couleur choisi ?

                    public function ajouterAction($id)
                        {
                            $session = $this->getRequest()->getSession();
                            
                            if (!$session->has('panier')) $session->set('panier',array());
                            $panier = $session->get('panier');
                            
                            if (array_key_exists($id, $panier)) {
                                if ($this->getRequest()->query->get('qte') != null) $panier[$id] = $this->getRequest()->query->get('qte');
                                $this->get('session')->getFlashBag()->add('success','Quantité modifié avec succès');
                            } else {
                                if ($this->getRequest()->query->get('qte') != null)
                                    $panier[$id] = $this->getRequest()->query->get('qte');
                                else
                                    $panier[$id] = 1;
                                
                                $this->get('session')->getFlashBag()->add('success','Article ajouté avec succès');
                            }
                            $session->set('panier',$panier);
                            
                            return $this->redirect($this->generateUrl('panier'));
                        }

                    Ici j'ai bien mon id du produit récupéré( quand je fais le var_dump($panier[$id]) j'ai bien mon produit), et je veux ajouter à ma session (panier) un autre attribut couleur pour l'utiliser aprés.

                    resultat du dump : [ idproduit => 1]  (1 c'est la quantité récupérer par $panier[$id] = $this->getRequest()->query->get('qte'))

                    il me faut dans le panier : 

                     [ idproduit => 1] 

                     [ idproduit => rouge(pr exp)] 

                    j'ai tenté $this->getRequest()->query->get('co') mais null .

                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 janvier 2018 à 11:35:53

                      Arf j'ai vraiment pas le talent de @Mateo21 pour expliquer les choses. :euh:

                      Comme j'ai essayé de l'expliquer plus haut tu n'utilise pas ton formtype dans ton twig.

                      Ça devrait donner un truc dans ce genre la.

                      {# empty Twig template #}
                      {% block body %}
                          {{ form_start(formProduit) }}
                          <p>
                              <b>Couleur :</b>
                          <tr><td>{{ form_widget(formProduit.couleur, {'attr': {'class': 'champ champ--combo'}}) }}</td></tr>
                          <span class="erreur">{{ form_errors(formProduit.couleur) }}</span>
                          </p>
                          <p>
                              <b>Taille :</b>
                          <tr><td>{{ form_widget(formProduit.taille, {'attr': {'class': 'champ champ--combo'}}) }}</td></tr>
                          <span class="erreur">{{ form_errors(formProduit.taille) }}</span>
                          </p>
                          <p>
                              <b>Marque :</b>
                          <tr><td>{{ form_widget(formProduit.marque, {'attr': {'class': 'champ champ--texte'}}) }}</td></tr>
                          <span class="erreur">{{ form_errors(formProduit.marque) }}</span>
                          </p>
                          
                          <div class="ligne--boutons">{{ form_widget(formProduit.valider, {'attr': {'class': 'bouton bouton--valider'}}) }}</div>
                          {{ form_end(formProduit) }}
                      {% endblock %}
                          

                      à adapter comme tu en as besoin bien sûr ;)

                      Aussi comme je l'ai dit dans ton controller tu ne persiste pas ton formulaire à la validation ce qui fait que rien n'est envoyé dans ton panier.

                      c'est une fonction qui s’utiliserait comme ça

                      $produit = new Produit(); // tu initialises un produit vide
                      $formProduit = $this->createForm(new ProduitType(), $produit); // tu appelles ton formulaire
                      
                      if($formProduit->handleRequest($request)->isValid()){
                                  $em = $this->getDoctrine()->getManager();
                                  $em->persist($produit);// el famoso persist !!
                                  $em->flush();
                                  $valide = true;
                              }// avec le if tu vérifie et valide ton formulaire
                      
                      

                      c'est un exemple mais après pour l'ajouter à ton panier tu pourrais faire appel à un formulaire de produit valider depuis un autre controller que tu appellerais "panier" par exemple.

                      Je pense que le fait que tu fasse l'ajout du produit directement dans le panier dans le controller du produit fait qu'il galère un peu. Si toutefois tu préfère continuer avec cette méthode un try catch serait sans doute plus simple à utiliser.

                       



                      • Partager sur Facebook
                      • Partager sur Twitter

                      Tester c'est douter

                        18 janvier 2018 à 16:06:54

                        Merci pour la réponse, 

                        Je pense qu'il y a un Malentendu  ce sont pas des champs que je remplis (nom, marque, taille, couleur ...) ce sont les caractéristiques du produits qui sont stocké déjà dans ma BD ..  avec plusieurs couleur , et plusieurs taille. mon problème est un probleme de session , comment puis-je inserer le choix de l'internaute dans la session pour le récupérer aprés !

                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 janvier 2018 à 16:36:12

                          Pourquoi Symfony 2.7 ? Tu récupères un projet existant ?

                          Dans ton cas, tu pourrais vraiment te simplifier les choses en utilisant les formulaires de Symfony. Par exemple, pour la liste des couleurs d'un produit, tu peux utiliser un ChoiceType ou un EntityType (selon comment sont enregistrées tes couleurs en base de donnée).

                          Quand le formulaire est envoyé (pour ajout au panier) tu récupères dans le controller les informations de ton article dans des variables, puis tu passes ces variables à la vue du panier (il n'y a pas de persistance en base de donnée à cette étape). L'avantage d'un formulaire entièrement géré par symfony, c'est que tu es sûr de retrouver facilement tes informations, que les champs soit des <input> ou des <select>. Il suffit de lui dire quels champs tu veux dans ton formulaire au départ, et il se charge de toute la logistique sous-jacente.

                          Si c'est possible, je te conseille de passer à la version 3.4 de Symfony, beaucoup de choses ont changé depuis la 2.x. La 4.1 vient de sortir, mais mieux vaut attendre un peu pour l'utiliser...

                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 janvier 2018 à 9:25:20

                            @usherach mais si j'avais compris que tu voulais faire ça ^^. @HarvestR c'est exactement ce que j'essaie de lui expliquer mais j'ai beaucoup de mal à me faire comprendre :/. Ce que je t'avais montrer aurait justement permis à l'utilisateur de sélectionner uniquement les couleurs ou autre information dans ta BD. Ça t'aurais évité d'avoir à refaire ton formulaire à chaque fois si tu venais à ajouter ou retirer des informations dans un de tes formulaires. Normalement si le premier formulaire est valider tu peux l'appelé dans ton panier sans passer par l'ID mais en récupérant l'entité que l'utilisateur aura créer en validant le formulaire.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Tester c'est douter

                              19 janvier 2018 à 10:06:21

                              Mercii pour vos réponses :)

                              @HarvesR, Pour le 2.7 : oui disant j'ai un projet existant et j'ai fais des modifications.

                              Dés le début j'ai voulu ajouter à un produit plusieurs couleurs et plusieurs tailles c'est pour ça que j'ai fais les relations manytoone et manytomany entre l'entité produit d'un côté et les entités couleur et taille d'autre côté, du coup dans le formtype du produit j'ai :

                              ->add('couleur', 'collection', array('type' => new CouleurType(), 'allow_add' => true, 'label' => false, 'required' => false, 'by_reference' => false))
                              ->add('taille', 'collection', array('type' => new TailleType(), 'allow_add' => true, 'label' => false, 'required' => false, 'by_reference' => false))
                                          

                              pour la récupération des champs select c'est résolu :

                              <form action="{{  path('ajouter', { 'id' : produit.id }) }}" method="POST">
                                                          <p>                        
                              
                                                              <b>Couleur :</b>
                                                              <select name="co">
                                                                  {% for coul in produit.couleur %}
                                                                      <option value="{{ coul.nomc }}">{{ coul.nomc }}</option>
                                                                  {% endfor %}
                                                              </select>
                                                          </p>                            
                                                              <p> 
                                                          <b>Taille :</b>
                                                          <select name="ta" >
                                                              {% for ta in produit.taille %}
                                                                  <option value="{{ ta.tai }}">{{ ta.tai }}</option>
                                                              {% endfor %}
                                                          </select>
                                                      </p>
                                                      <p><b>Marque :</b> {{ produit.marque}}</p>
                                                      <p>
                                                          
                                                              <button  class="btn btn-fefault cart" >
                                                                  <i class="fa fa-shopping-cart"></i>
                                                                  Ajouter au Panier
                                                              </button>   
                                                          
                                                      </p>
                                                      </form>

                              j’étais en train d'envoyer mon formulaire deux  fois (une dans l'action du form et l'autre dans le boutton ) :/ c'est pour ça que j'avais toujours le null. 

                              $session = $this->getRequest()->getSession();
                              
                                      if (!$session->has('panier'))
                                          $session->set('panier', array());
                                      $panier = $session->get('panier', array());
                              
                                      if (array_key_exists($id, $panier)) {
                                          if ($this->getRequest()->query->get('qte') != null)
                                              $panier[$id] = $this->getRequest()->query->get('qte');
                                      } else {
                                          if ($this->getRequest()->query->get('qte') != null)
                                              $panier[$id] = $this->getRequest()->query->get('qte');
                                          else
                                              $panier[$id] = 1;
                              
                                          $this->get('session')->getFlashBag()->add('success', 'Article ajouté avec succès');
                                      }
                                      $panier['co'] = $this->getRequest()->request->get('co');
                                      $panier['ta'] = $this->getRequest()->request->get('ta');
                              
                                      $session->set('panier', $panier);
                                      var_dump($panier);die();
                                      return $this->redirect($this->generateUrl('panier'));

                              sauf que maintenant et quand je fais un var_dump du panier j'ai 3 données dans mon panier :

                              array (size=3)
                                3 => 
                                      int 1
                                'co' =>string 'rose' (length=4)
                                'ta' =>string '10' (length=2)

                              ce qui cause un problème au niveau du calcul de nbr d'articles dans mon panier (quand j'ajoute un produit : il m'affiche 3 comme nbr d'article alors que j'ai qu'un seul produit)

                              c'est le code du calcul d'article :

                              $session = $this->getRequest()->getSession();
                                      if (!$session->has('panier'))
                                          $articles = 0;
                                      else
                                          $articles = count($session->get('panier'));

                              y'a pas une solution pour , ajouter au même produit la couleur et la taille 

                              por avoir : 

                              array (size=1)
                                3 =>
                              array
                              int 1, 'co' => string 'rose' (length=4),'ta' => string '10' (length=2)

                              -
                              Edité par usherach 19 janvier 2018 à 10:10:23

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 janvier 2018 à 12:13:11

                                faire un get de la collection d'attributs d'un coup avec les infos dont tu as besoin plutôt que d'appeler les informations une par une.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Tester c'est douter

                                  19 janvier 2018 à 12:19:35

                                  j'ai pas bien saisis : que veux tu dire "get de la collection d'attributs d'un coup" ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    19 janvier 2018 à 14:39:33

                                    Dans ton cas tu fais plusieurs get à la suite.

                                    $panier['co'] = $this->getRequest()->request->get('co');
                                    $panier['ta'] = $this->getRequest()->request->get('ta');
                                    // et ainsi de suite.

                                    Moi je te conseillerai de faire un

                                    $prepository = $this->getDoctrine()->getManager()->getRepository('TonAppliBundle:Produit');
                                    
                                    $produit = $prepository->findOneBy(array("id" => $id)); //le produit appelé
                                    
                                     

                                    Après tu peux jouer sur le repository pour appeler uniquement les infos que tu veux.

                                    Une fois cela fait tu peux en faire ce que tu veux avec les fonctions que tu utilises dans ton controller.

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Tester c'est douter

                                      21 janvier 2018 à 1:21:11

                                      Merci pour vos réponses  Sujet résolu

                                      public function ajouterAction($id) {
                                              $session = $this->getRequest()->getSession();
                                      
                                              if (!$session->has('panier'));
                                              $panier = $session->get('panier', array());
                                      
                                              if (array_key_exists($id, $panier)) {
                                                  if ($this->getRequest()->query->get('qte') != null){
                                                      $panier[$id]['qte'] = $this->getRequest()->query->get('qte');
                                              }} else {   
                                                  
                                                      $panier[$id] = array('qte'=>1,
                                                                            'co'=>$this->getRequest()->query->get('co'),
                                                                             'ta'=>$this->getRequest()->query->get('ta'));
                                                      
                                                      
                                                  $this->get('session')->getFlashBag()->add('success', 'Article ajouté avec succès');
                                              }
                                                      
                                              $session->set('panier',$panier);
                                              return $this->redirect($this->generateUrl('panier'));
                                          }



                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Récuperation de la valeur d'un select

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown