Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 11h06   #1
Invité régulier
 
Jean Philipe
Inscription : avril 2009
Messages : 23
Détails du profil
Informations personnelles :
Nom : Jean Philipe

Informations forums :
Inscription : avril 2009
Messages : 23
Points : 7
Points : 7
Par défaut Variable globale avec Ajax

Bonjour,

J'ai un souci avec mon code présent :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 var c;
 
    function update() {
        $.ajax({
            url: 'update.php',		
            success: function(data) {
		c = 9;
		alert(c);                                                            
            },
            cache: false
        })
 
 
    } 
 
 
    update();
    alert(c);
Je modifie ma variable globale c dans ma fonction update mais cette modification n'est visiblement pas prise en compte lorsque je fais mon alerte(c) à la fin.

J'ai fais une petite recherche sur le forum pour savoir si le problème a déjà été traité et je suis tombé sur ce sujet http://www.developpez.net/forums/d90...-globale-ajax/. Malheuresement je n'ai pas compris comment la personne a résolu sont problème, pouvez vous m'expliquer ce que je doit faire.

Merci bien,
cldt P.
devocx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 11h18   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour,

La variable c ne sera égal à 9 qu'après avoir reçue le résultat de la requête AJAX car tu travaille en mode asynchrone.
Sinon, c'est quoi ton soucis?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 11h29   #3
Invité régulier
 
Jean Philipe
Inscription : avril 2009
Messages : 23
Détails du profil
Informations personnelles :
Nom : Jean Philipe

Informations forums :
Inscription : avril 2009
Messages : 23
Points : 7
Points : 7
Citation:
La variable c ne sera égal à 9 qu'après avoir reçue le résultat de la requête AJAX car tu travaille en mode asynchrone.
Sinon, c'est quoi ton soucis?
Peux tu me dire comment aciver le mode synchrone. J'aimerais qu'à la fin mon c soit égale à 9.

Et merci
devocx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 11h39   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Je me suis un peu trompé quand je t'ai dit que c'est parceque tu travailles en mode asynchrone. En fait si tu mets "c=9" dans la fonction success, elle ne sera exécuté qu'à la fin de la requête qu'il soit asynchrone ou non. En travaillant en mode asynchrone, les instructions qui suivent la requête AJAX sera executé avant et n'attendent pas que la requête AJAX soit terminé. En mode synchrone, les instructions qui suivent la requête attendent qu'il soit fini pour continuer d'executer.
Pour travailler en mode synchrone, ajoute dans le paramètre.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 11h44   #5
Invité régulier
 
Jean Philipe
Inscription : avril 2009
Messages : 23
Détails du profil
Informations personnelles :
Nom : Jean Philipe

Informations forums :
Inscription : avril 2009
Messages : 23
Points : 7
Points : 7
Merci bien, ça marche. Sujet résolu
devocx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h06.


 
 
 
 
Partenaires

Hébergement Web