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

Langage PHP Discussion :

Enregistrer la valeur du select dans une variable de session


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut Enregistrer la valeur du select dans une variable de session
    Bonjour à tous,

    Je voudrais pouvoir mettre dans une variable de session la valeur de l'option sélectionnée par l'utilisateur avant de soumettre le formulaire. J'ai essayé de faire cela via le onchange du select ou des options mais cela me renvoie soit une valeur vide (sur le select) ou systématiquement le dernier choix quel que soit celui sélectionné par l'utilisateur (sur option).

    Voici mon code (avec l'essai sur l'option) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select name="modif" size="1" class="demi">
    <?php 
    while($row = mysql_fetch_array($result)){
    ?>
         <option class="option" onchange="<?php $_SESSION['id_tb'] = $row['id_pages'] ?>" value="<?php echo $row["id_pages"] ?>"> <?php echo $row["position"] . " - " . $row["titre"] ; ?> </option>
    <?php } ?>
    </select>
    Quelqu'un pourrait-il m'aider ?

    En fait j'essaie cela pour pouvoir utiliser une Thickbox (script AJAX) depuis un formulaire, le problème étant que je n'arrive plus à récupérer la valeur POST du formulaire quand je l'implémente. C'est pour cette raison que je tente ma chance en voulant passer la valeur par une valeur de session mais si quelqu'un a une autre solution, je suis intéressé ;-)

    Merci d'avance

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    PHP est exécuté côté serveur, HTML/JS côté client. Ce que tu cherches à faire ici est donc impossible.

    Envoie ton formulaire normalement, récupère tes infos par $_POST, et stocke les en session.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonjour,

    Tu ne peux pas sans soumission.
    Maintenant, tu peux le faire de manière transparente par Ajax.

    Edit : ouch, j'avais pas vu le post de Siegfried

  4. #4
    Membre habitué Avatar de Couz02
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 232
    Points : 182
    Points
    182
    Par défaut
    T'as essayé avec la méthode GET ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    Salut à tous,

    A zut alors donc j'abandonne cette piste.

    Le problème est que je perds les valeurs post ou get transmises via le formulaire si je veux utiliser Thickbox.

    En effet, je dois mettre un alt à l'input pour appeler la Thickbox qui ne marche pas quand j'essaie de l'appeler via action dans le formulaire.

    Voici le code complet du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form id="vert" name="modifier" action="modif_pages.php?keepThis=true&TB_iframe=true&height=300&width=500" class="thickbox" title="Nice title" method="post">
    <select name="modif" size="1" class="demi">
    <?php 
    while($row = mysql_fetch_array($result)){
    ?>
    <option class="option" onchange="<?php $_SESSION['id_tb'] = $row['id_pages'] ?>" value="<?php echo $row["id_pages"] ?>"><?php echo $row["position"] . " - " . $row["titre"] ; ?></option>
    <?php } ?>
    </select>
     
    <input alt="modif_pages.php?keepThis=true&TB_iframe=true&height=300&width=500" type="submit" value="Modifier" name="soumettre" class="thickbox" />
    </form>
    Mais là ça devient peut-être plus de l'AJAX...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    Je pense à quelque chose : n'y aurait-il pas moyen de faire la manipulation que je voulais faire avec la variable (enregistrer le select choisi par l'utilisateur et passer la valeur à la page suivante) en Javascript ?

    Le problème étant que je ne suis pas doué en Javascript...

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Oui, avec un cookie.
    Tu crées une fonction qui écrit dans un cookie, puis sur onchange, tu lances la fonction.
    Seul hic: puisqu'il est stocké en local, l'utilisateur peut lire le contenu du cookie. A toi de voir si ça convient en termes de sécurité ou pas.
    A la page suivante, tu récupères la valeur depuis le cookie.
    Tu trouveras ci-dessous des exemples de fonction pour écrire, lire et effacer un cookie.

    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
    <script type="text/javascript" language="JavaScript">
    <!--
    function EcrireCookie(nom, valeur)
    {
    var argv=EcrireCookie.arguments;
    var argc=EcrireCookie.arguments.length;
    var expires=(argc > 2) ? argv[2] : null;
    var path=(argc > 3) ? argv[3] : null;
    var domain=(argc > 4) ? argv[4] : null;
    var secure=(argc > 5) ? argv[5] : false;
    document.cookie=nom+"="+escape(valeur)+
    ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
    ((path==null) ? "" : ("; path="+path))+
    ((domain==null) ? "" : ("; domain="+domain))+
    ((secure==true) ? "; secure" : "");
    }
    //-->
    </script>
    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
    26
    <script type="text/javascript" language="JavaScript">
    <!--
    function getCookieVal(offset)
    {
    var endstr=document.cookie.indexOf (";", offset);
    if (endstr==-1) endstr=document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
    }
    function LireCookie(nom)
    {
    var arg=nom+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;
    while (i<clen)
    {
    var j=i+alen;
    if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
     
    }
    return null;
    }
    //-->
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript" language="JavaScript">
    <!--
    function EffaceCookie(nom)
    {
    date=new Date;
    date.setFullYear(date.getFullYear()-1);
    EcrireCookie(nom,null,date);
    }
    //-->
    </script>

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    Merci pour ces exemples Tsilefy, ça a l'air de fonctionner. En effet, quand sur la page concernée je lis le cookie et que je l'affiche via un document.write, je récupère la bonne valeur.

    Mais j'ai une dernière question (stupide sans doute) : comment fais-je pour passer cette valeur au php ? Là j'ai ma variable id dans le javascript qui contient la bonne donnée mais il me faudrait cette valeur dans un $id php (j'en ai besoin pour mes requêtes SQL).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript" language="JavaScript">
    <!--
    id=LireCookie("page");
    //-->
    </script>
    <?php
    $id = ?????;
    Merci d'avance, je suis proche du but grâce à vos conseils.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    Voilà j'ai réussi !

    Je récupère la valeur dans le cookie, je le vide et reloade la page en passant la valeur en paramètre pour la récupérer via get en php !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript" language="JavaScript">
    <!--
     
    id=LireCookie("page");
    if (id != null){
    EffaceCookie("page");
    location.href="modif_pages.php?id="+id;
    }
    //-->
    </script>
    <?php
     
    if (!empty($_GET["id"])){
    $id = $_GET["id"];
    Merci pour votre aide

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    J'avais totalement oublié que tu as aussi la possibilité de gérer directement les cookies depuis php ! Il faut dire que je ne m'en sers jamais.
    Tu écris le cookie avec javascript, et ensuite tu récupère la valeur dans les pages suivantes avec $_COOKIE. Tu peux maintenant l'utiliser avec php.
    Tellement simple que j'ai honte de ne pas y avoir pensé auparavant !!

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

Discussions similaires

  1. DB2 - valeur d'un select dans une variable
    Par lucimed dans le forum DB2
    Réponses: 5
    Dernier message: 19/10/2011, 20h42
  2. Réponses: 1
    Dernier message: 26/05/2010, 15h34
  3. Réponses: 6
    Dernier message: 23/03/2009, 15h40
  4. stokage de la valeur d'un select dans une variable .
    Par Halloula dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/01/2008, 11h46
  5. [formulaire] Récuperer la valeur d'un select dans une variable
    Par Despec dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/11/2006, 15h45

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