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

JavaScript Discussion :

Utiliser une variable $_SESSION (PHP) dans Javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Décembre 2015
    Messages : 31
    Points : 18
    Points
    18
    Par défaut Utiliser une variable $_SESSION (PHP) dans Javascript
    Bonjour,

    J'ai fais pas mal de recherches pour pouvoir utiliser une valeur de $_SESSION dans javascript, j'ai beaucoup de mal à trouver ce que je cherche...

    J'ai commencé par faire un fichier php avec ceci

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
        session_start();
        $json_response = json_encode($_SESSION['id_group']);
        echo $json_response;
    ?>

    Ensuite j'ai fait une fonction javascript avec ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function test (data){
     
        var data = $.get("ajax/get_session.php", function(data){
            alert(data);
            var session = data;
        });
     
    };
    Donc j'ai réussis à afficher une boite (alert) avec la valeur de la $_SESSION mais je ne trouve pas le moyen de la récupérer.. comment puis-je faire pour récupèrer la valeur DATA?

    Je pense que c'est une opération simple mais je n'y arrive pas.. je souhaite récupérer la valeur de $_SESSION afin de faire une condition (IF) avec celle-ci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 266
    Points : 15 576
    Points
    15 576
    Par défaut
    Citation Envoyé par allowed Voir le message
    Donc j'ai réussis à afficher une boite (alert) avec la valeur de la $_SESSION
    est ce que vous avez bien récupéré l'information à cet endroit ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Décembre 2015
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Carrément ! J'ai réussis a faire une alerte avec la valeur. Ce que je n'arrive pas à faire c'est utiliser cette valeur en dehors de ma fonction..

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 266
    Points : 15 576
    Points
    15 576
    Par défaut
    j'ai compris, je pense que c'est un problème de portée de variable.
    en JavaScript une variable définie avec "var" reste seulement définie à l'intérieur de la fonction en cours et des fonctions appelées à l'intérieur de celle-ci

    avec votre code cela donne ces exemples :

    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
    var variableTresGlobale;
     
     
    function test (data){
        var variableDansFonction;
     
        var data = $.get("ajax/get_session.php", function(data){
            alert(data);
            var session = data;
            variableTresGlobale = data;
     
            // ici sont accessibles les variables "session", "variableDansFonction" et "variableTresGlobale"
     
        });
     
        // ici sont accessibles les variables "variableDansFonction" et "variableTresGlobale" mais pas "session"
     
    }
     
    // ici et dans les autres fonctions sera uniquement accessible la variable "variableTresGlobale"

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 021
    Points : 44 313
    Points
    44 313
    Par défaut
    Bonjour,
    les données ne sont disponibles qu'au retour de la requête, c'est à ce moment qu'il te faut les exploiter.

    Un classique AJAX : utiliser les données au bon moment !.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Décembre 2015
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par mathieu
    ...
    J'ai essayé avec le code en dessous, ca ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var get_sdata;
     
    function get_session (data){
     
        var data_container = $.get("ajax/get_session.php", function(data){
            var session = data;
            get_sdata = data;
        });
     
    };
     
    get_session();
     
    alert(get_sdata);

  7. #7
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Décembre 2015
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par NoSmoking
    ...
    Très bien merci je vais lire tout ça et ca à l'air de ressembler à ce que je cherche ! je reviens pour donner la solution si j'arrive à y parvenir merci beaucoup monsieur

    Je viens d'essayer avec le code ci dessous, undefined sur le deuxième alert??? Mais celui qui est coloré en vert m'affiche la valeur "admin"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var xhr = new XMLHttpRequest(), monResultat;  
    xhr.open('POST', url);  
    xhr.onreadystatechange = function(){  
        if(xhr.readyState == 4 && xhr.status == 200){  
            monResultat = xhr.responseText;  
            alert(monResultat);  
        }  
    };  
    xhr.send('variable=valeur');  
    alert(monResultat);

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 021
    Points : 44 313
    Points
    44 313
    Par défaut
    Le résultat que tu obtiens est tout à fait normal/logique, ton alert en vert est effectuée une fois la requête revenue, donc avec une « vrai » valeur alors que celle qui suit ton xhr.send est effectué juste (immédiatement) après ton send et donc ta variable n'a pas était initialisé au retour de la requête, c'est en substance ce que dit Bovino dans le lien que je t'ai proposé.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Décembre 2015
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var xhr = new XMLHttpRequest(), monResultat;
    xhr.open('POST', "ajax/get_session.php", false);
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){
            monResultat = xhr.responseText;
        }
    };
    xhr.send();
    alert(monResultat);


    J'ai bien compris ! Ca marche avec ceci maintenant.. Merci pour votre aide, maintenant que ca marche je vais me renseigner en profondeur sur le xhr que je ne connaissais pas..

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

Discussions similaires

  1. [XL-2003] Comment utiliser une variable pour filtrer dans Excel
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2010, 16h40
  2. Utiliser une variable PL/SQL dans une requête
    Par maxwell86 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 10/12/2008, 09h34
  3. [WebForms]Comment utiliser une variable de session depuis JavaScript ?
    Par ThunderBib dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 05/05/2006, 14h01
  4. Réponses: 5
    Dernier message: 04/05/2006, 21h02
  5. utiliser une variable se trouvant dans un autre .c
    Par richard_sraing dans le forum C
    Réponses: 2
    Dernier message: 18/03/2006, 11h59

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