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 :

Récuperation de la valeur sélectionnée dans un select et la renvoyer vers une autre page


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Récuperation de la valeur sélectionnée dans un select et la renvoyer vers une autre page
    Bonsoir,
    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) .

    Nom : aj.JPG
Affichages : 1322
Taille : 12,4 Ko

    details.html.twig
    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
    <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
    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
    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

  2. #2
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <select id="ta" >
        {% for ta in produit.taille %}
            <option value="{{ ta.tai }}">{{ ta.tai }}</option>
        {% endfor %}
    </select>

    peut-être mettre un attribut name à ton select et l'envoyer comme un formulaire, tu peux alors le récupérer dans ton controller via l'objet Request.
    http://api.symfony.com/master/Symfon...n/Request.html

    tu peux également l'envoyer en ajax si tu ne veux pas que ta page se rafraichisse.
    Même une feuille de papier est plus légère si on la porte à deux.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Bonjour, j'ai bien mis un name à la select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="ta" >
                                    {% for ta in produit.taille %}
                                        <option value="{{ ta.tai }}">{{ ta.tai }}</option>
                                    {% endfor %}
                                </select>
    j'ai essayé de le récupérer dans le controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $panier[$id] = $this->getRequest()->query->get('ta');
    mais quand je vais un dump c'est du null retourné

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    ok essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //
    use Symfony\Component\HttpFoundation\Request;
    //
    ...Action(Request $request) {
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $panier[$id] = $request->request->get('ta');

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Malheureusement c'est null que j'ai !
    malgré que j'ai pratiquement la même démarche avec quantité est ça marche
    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
    $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');
            }    
     
            $session->set('panier',$panier);

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Points : 378
    Points
    378
    Par défaut
    ca dépend si ta méthode de ton form est en get ou post

    http://symfony.com/doc/current/contr...esponse-object

    je te conseillerais aussi de passer par les form de sf

Discussions similaires

  1. [PHP 5.6] Récupérer dans une variable la valeur sélectionnée dans un select
    Par modus57 dans le forum Langage
    Réponses: 9
    Dernier message: 13/11/2017, 11h43
  2. valeur sélectionnée dans un <select>
    Par Oberown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/12/2010, 21h07
  3. Récupérer la valeur sélectionnée dans un <select>
    Par Goupo dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 26/06/2009, 10h31
  4. Réponses: 1
    Dernier message: 19/02/2007, 15h05
  5. Lien vers une autre page puis qui selection d'un elt d'une listbox
    Par avogadro dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 12/08/2006, 13h03

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