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

PHP & Base de données Discussion :

récupération d'une variable de session pour corriger l'option d'un champ select


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet web
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut récupération d'une variable de session pour corriger l'option d'un champ select
    Bonjour,

    je suis en train de coder un panier en php.
    j'utilise les variables de session pour transmettre les informations contenues dans le panier d'une page à l'autre.
    Pour une raison qui me vaut d'écrire sur ce forum, j'essaie de modifier le contenu "selected" d'une option après que l'utilisateur ait confirmé son souhait dans un select, sans succès.
    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
     
    <?php
     
    // il y a bien un session_start() au début de la page
    // une requete est effectuée en BDD et elle fonctionne, le panier fonctionne lui aussi
    /* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    	TITRE PRODUIT et prix unitaire en dessous
    ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
     
    	echo '<td class="cart_name">';
    	echo '<a href="'.RACINE.PCAT.'/'.htmlspecialchars($pagen['url']).'/'.htmlspecialchars($row['url']).'/'.(int)$row['id'].'/">';
    	echo stripslashes(reduction2(htmlspecialchars($row['titre']),47));
    	echo '</a>';
    	$_SESSION['panier']['prixProduit'][$i] = $row['prix'];
            echo '<br/><b style="font-size:15px;color:#2fb5d2">'.number_format((htmlspecialchars($row['prix'])),2,'.','').' &euro;</b></td>';
     
    /* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    	QUANTITES
    ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
     
    	echo '<td class="cart_q">';
    	echo '<input type="number" size="1" name="q[]" min="1" max="20" value="'.htmlspecialchars($_SESSION['panier']['qteProduit'][$i]).'" onclick="document.forms.panier.submit()"/>';
    	echo '</td>';
     
    // jusqu'ici tout va bien ;)
    A partir d'ici ça va moins bien :
    - je fais une requête en BDD pour obtenir les différents formats de poids que je souhaite donner à l'utilisateur
    - Puis j'insère le résultat dans un select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    	POIDS
    ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
     
            echo '<select name="poids" class="browser-default" onchange="document.forms.panier.submit()">';
     
            foreach($poids as $ret){
    		if($_SESSION['panier']['poidsArticle'][$i]==$ret['valeur']) $selectchoix=' selected="selected"';  
    		else $selectchoix='';
    		echo '<option value="'.$ret['valeur'].'"'.$selectchoix.'>'.$ret['titre'].'</option>';
    	}
    	echo '</select>';
    et un var_dump de ma variable de session $_SESSION['panier']['poidsArticle'][$i] m'affiche une valeur à NULL

    En conséquence le refresh que je fais, une fois que l'utilisateur à fait son choix, ne remplis pas sa fonction (d'actualiser les quantités) puisque son contenu reste NULL.
    Voilà je vous écris pour savoir déjà si je prends la bonne route car j'ai un problème de méthode sur ce cas particulier et j'aimerais avoir un regard extérieur.
    Merci beaucoup.

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Fais plutôt cela, pour savoir ce que ta session a en stock.
    Parce que ton $i là, on ne sait pas ce qu'il vaut ni d'où il sort.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_SESSION['panier']['poidsArticle']);
    Traditionnellement, on fait comme ceci (condition ternaire) pour retrouver un selected :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$ret['valeur'].'"'.($ret['poids']==$_SESSION['panier']['poidsArticle']?' selected':NULL).'>'.$ret['titre'].'</option>';
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet web
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci d'avoir pris le temps de répondre

    - Oui concernant $i je n'ai pas été très loquace car il s'agissait juste d'une petite variable de boucle indiquant la position du produit dans le panier en fonction du nombre d'article y figurant.

    Néanmoins, mon script fonctionne après que j'eus changé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    echo '<select name="poids" class="browser-default" onchange="document.forms.panier.submit()">';
     
    en 
     
    echo '<select name="poids[]" class="browser-default" onchange="document.forms.panier.submit()">';
    Il est vraisemblable que l'erreur ait été corrigée avant cela car il est possible que j'ai oublié de détruire ma session avant cette petite correction...

    Cela dit je vous remercie de la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo '<option value="'.$ret['valeur'].'"'.($ret['poids']==$_SESSION['panier']['poidsArticle']?' selected':NULL).'>'.$ret['titre'].'</option>';
    plus propre que la mienne, et dont voici le corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<option value="'.$ret['valeur'].'"'.($ret['valeur']==$_SESSION['panier']['poidsArticle'][$i]?' selected':NULL).'>'.$ret['titre'].'</option>';
    bien cordialement,
    je marque le sujet en "résolu".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Récupération d'une variable en frontend pour confirmer un enregistrement dans sqlite
    Par lagratteCchouette dans le forum Général Python
    Réponses: 14
    Dernier message: 15/04/2019, 23h07
  2. Applet : récupération d'une variable de session
    Par Quentin D dans le forum Applets
    Réponses: 0
    Dernier message: 20/08/2009, 10h48
  3. Réponses: 11
    Dernier message: 15/10/2008, 10h44
  4. Réponses: 6
    Dernier message: 09/04/2007, 16h53
  5. [Débutant] récupération d'une variable local pour l'envoyer a un popup
    Par minogttao dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/11/2006, 13h58

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