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 :

Récupérer un variable globale dans une fonction.


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut Récupérer un variable globale dans une fonction.
    Bonjour,
    Ma question va certainement sembler bete pour certains, mais ca fait un moment que je galere alors je vous demande de l'aide.

    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    nombre=3;
     for (j=1; j<nombre; j++) {
        $.post("/php/lecture_profil.php",{ id:j},function (data)  { 
    	alert (j);
    	});
    }
    Mon probleme, la variable j est toujours egale à 3 dans l'alert... je ne comprends pas pourquoi elle n'est pas egale à 1, puis 2.....

    Si qulqu'un peut m'aider en m'expliquant pourquoi et en me donnant la soluce ca serait cool.

    Merci,
    TouFou
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tout simplement parce que les requêtes AJAX sont asynchrones, donc la boucle continue son exécution avant de recevoir la réponse du serveur. Donc au moment de l'alert, j vaut bien 3.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    Juste le temps de surfer sur 3 sites et la réponse est là!!!

    Merci, je n'avais pas du tout pensé au coté asynchrone!!

    J'ai résolu le problème en envoyant l'etat de j dans la requete ajax et je la recupere en local à la fin de la requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nombre=3;
     for (j=1; j<nombre; j++) {
        $.post("/php/lecture_profil.php",{ id:j},function (data)  { 
    	var id=0;
    	 tableau=data.split('<id>');
    	 id=tableau[1];
    	alert (id);
    	});
    }
    et dans mon code php, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<id>'.$id.'<id>';
    Merci à toi, j'aurais pu chercher des heures sans connaitre la bonne direction

    Bon week-end,
    TouFou
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

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

Discussions similaires

  1. Assignation d'une variable globale dans une fonction .
    Par moithibault dans le forum Général Python
    Réponses: 11
    Dernier message: 27/12/2010, 10h54
  2. [rendre une variable globale dans une fonction]
    Par emilek dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 28/07/2009, 18h11
  3. Changer valeur variable global dans une fonction callback
    Par bog333 dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 02/10/2008, 15h14
  4. Variable Globale dans une fonction
    Par rekiem71 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 18/01/2007, 17h12
  5. Variables globales dans une fonction?
    Par Death83 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/07/2006, 01h53

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