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

jQuery Discussion :

Récupération de la variable hors getJSON


Sujet :

jQuery

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut Récupération de la variable hors getJSON
    Bonjour,

    J'ai des fichiers de langues lang_fr.json, lang_en.json, que je demande suivant la langue de l'utilisateur, afin d'afficher les phrases de sa langue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {
        "HOME": "Accueil",
        "ABOUT": "A propos",
        "CONTACT": "Nous contacter",
        "EMAIL": "E-mail"
    ETC
    }
    Je voudrais l'utiliser en PHP ainsi qu'en JS, là je trouve une difficulté d'appeler une variable hors getJSON en JS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            $.getJSON('cdns/json/lang_' + memLang + '.json', function (dlang) {
              console.log(dlang);
     
              var  storeKeys  = [];
              var  storeVals  = [];
              $.each(dlang, function(x, y){
                storeKeys.push(x);
                storeVals.push(y);
              });
            });
     
            console.log(storeKeys); // retourne vide
            console.log(storeVals); // retourne vide
    Comment puis-je récupérer ces variables afin de les utiliser tout au bout du fichier?

    Merci à vous

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    l'ouverture de l'url se fait de façon asynchrone donc les données sont seulement disponible là où vous avez mis le code "console.log(dlang)".
    donc pour les utiliser, vous pouvez appelez une fonction à cet endroit en passant les données en paramètre.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Peut être j'ai mal interprété votre réponse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $.getJSON('cdns/json/lang_' + getLang + '.json', function (dlang) {
              console.log(dlang);
     
              function getJSONData(){
                return dlang;
            }          
     
            });
     
     
            console.log(getJSONData()); // Uncaught ReferenceError: getJSONData is not defined

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    là vous n'appelez pas votre fonction, vous l'avez seulement définie.

    je pensais à quelque chose comme ça :

    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
    $.getJSON(..., function (dlang) {
     
    	traitement_des_textes(dlang);
     
    });
     
     
    function traitement_des_textes(tableaux_des_textes)
    {
     
    	// utilisation des textes ici
     
    	console.log(tableaux_des_textes);
     
     
     
    }

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Alors j'ai fait ce que vous m'avez conseillé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
     
    $(document).on('click', '#upload', function () {
     
    /** Code ici */
     
            $.getJSON('cdns/json/lang_' + getLang + '.json', function (dlang) {
              console.log(dlang);
     
              getJSONData(dlang);
     
            });
     
            function getJSONData(key){
                console.log(key);
            }
     
             console.log(getJSONData()); // je reçois un tableau vide [], je veux récupérer ici les données afin de les utiliser ailleurs

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ce n'est pas possible comme je disais plus haut parce que le chargement du fichier se fait de façon asynchrone.
    donnez nous plus de détails sur ce que vous voulez faire.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    C'est un site multi langues, je récupère des variables stockées dans le fichier json, et je les utilise en PHP et jQuery, par exemple le menu, ou action d'upload, de vérification des champs d'un formulaire

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    tout cela peut être mis dans votre fonction "getJSONData" où vous avez accès à ces textes.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Toutes les variables seront stockées dans le fichier json et seront par ailleurs appelées via la fonction getJSONData

Discussions similaires

  1. petite question sur la récupération d'une variable
    Par minusette dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2005, 16h57
  2. [C#] Récupération d'une variable d'environnement
    Par jamy79 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/08/2005, 14h03
  3. Récupération d'une variable
    Par cach dans le forum Windows
    Réponses: 7
    Dernier message: 22/02/2005, 11h19
  4. Utilisé une variable hors d'une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/02/2005, 19h21
  5. variable hors d'une fonction
    Par Anduriel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2005, 08h29

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