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 :

[AJAX] Synchroniser appels serveurs..


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut [AJAX] Synchroniser appels serveurs..
    Salut,

    J'ai un formulaire à mettre à jour dynamiquement.
    Ce formulaire est composé de 3 select. Le premier select determine les données du selectnumero2.
    Ensuite, la combinaison des valeurs des select 1 et select 2 doivent generer un 3eme select...
    je sais pas si je suis tres clair...

    J'ai donc, séquentiellement, fais les appels à :

    -methode 1 qui genere le select 2
    puis,
    -methode 2 qui genre le select 3.

    PB : quand j'appele la methode 2, le select 2 n'existe pas encore.. comment faire en sorte 'd'attendre' la fin d'execution de ma premiere methode ?

    merci

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Tu ne peux pas appeler la 2eme méthode a la fin de la mise en place de la premiere tout simplement ?

  3. #3
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    bin c'est ce que je fais.. mais la valeur du select 2 est à 'undefined'..

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Hum bizarre, tu peux mettre les bouts de code concernés ?

  5. #5
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    hahum, alors voila le code javascript.. l' evenement onChange du 1er select appele la methode updateEchelon.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    	function updateEchelon(e)	{
    		ajaxCallRemotePage('AjaxUpdateEchelon.do?grade='+e,'echelon');
    	}
     
    // Methode d'appel a une page en XmlHttpRequest
    	function ajaxCallRemotePage(url, method){
    		if (window.XMLHttpRequest)
    		{
    			// Non-IE browsers
    			req = new XMLHttpRequest();			
    			if (method == 'echelon') {
    				req.onreadystatechange = processStateChangeEchelon;
    			} else if (method == 'indice'){
    				alert ('update indice');
    				req.onreadystatechange = processStateChangeIndice;
    			}else {
    				alert ('unknown method'+method);
    			}			
    			req.open("GET", url, true);
    			req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    			req.send(null);
    		}
    		else if (window.ActiveXObject)
    		{
    			// IE
    			req = new ActiveXObject("Microsoft.XMLHTTP");
    			if (method == 'echelon') {
    				req.onreadystatechange = processStateChangeEchelon;
    			} else if (method == 'indice'){
    				alert ('update indice');
    				req.onreadystatechange = processStateChangeIndice;
    			}else {
    				alert ('unknown method'+method);
    			}
    			req.open("GET", url, true);
    			req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    			req.send();			
    		}
    		else {
    			alert ('Abandon, impossible de créer une instance XMLHTTP');
    			return; // Navigateur non compatible
    		}
    	}
    voici à présent le script executé pour charger le 2eme select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	function processStateChangeEchelon(){
    		var echelons = document.getElementById('idEchelon') ;
    		//alert ('echelon liste : ' +req.responseText);	 			
    		echelons.innerHTML = req.responseText;  
    		alert ('coucou echelon '+echelons.selectedIndex);
    		  updateIndice(document.getElementById('idGrade'),echelons.options[0]);    
    	}
    la methode updateIndice, appelé juste apres la construction de mon select, qui permet de generer le 3eme select me dit que echelons est 'undefined'... :-(

Discussions similaires

  1. Synchroniser appel Ajax et la suite de la fonction
    Par paladice dans le forum jQuery
    Réponses: 1
    Dernier message: 31/05/2013, 10h08
  2. Réponses: 8
    Dernier message: 19/07/2007, 12h15
  3. [AJAX] probleme appelle page XML sur autre serveur
    Par ldcarpathes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/08/2006, 18h35
  4. synchronisation client serveur
    Par mencaglia dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2005, 12h10
  5. Synchronisation de serveurs distants
    Par Mephyston dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/09/2005, 17h17

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