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 :

Ordre d'execution et httpRequest


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut Ordre d'execution et httpRequest
    Bonsoir à tous,

    J'ai un soucis pour effectuer une action basique : modifier le contenu d'un bouton. Le problème n'est pas la modification en elle même mais plutôt l'ordre d'execution de mon script.

    En effet, lors du clic d'un bouton je lance ma fonction Sub2() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="btvalidation" type="button" value="Valider" class="bouton" onclick="Sub2();"/>
    Dans cette fonction je commence par modifier mon bouton puis lancer mon httpRequest :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Sub2() {
    // Modification de mon bouton
    document.getElementById('btvalidation').value = 'Traitement en cours...';
    // Ma fonction httprequest
    sendData('1', 'null', 'inscription_req_.php', 'POST');
    }
    Le problème c'est que mon script execute d'abord mon request puis modifie mon bouton à la fin (soit quelques secondes plus tard) alors que le but de la manoeuvre est justement qu'il soit fait avant.

    Je montre la modification d'un value dans mon exemple mais j'ai essayé avec plusieurs choses (affichage d'une popup, etc...) et ça fait toujours la même chose !

    Merci par avance de votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <input id="btvalidation" type="button" value="Valider" class="bouton" onclick="this.value='Traitement en cours...';Sub2();"/>
    ...
    function Sub2() {
    // Ma fonction httprequest
    sendData('1', 'null', 'inscription_req_.php', 'POST');
    }
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    Merci mais j'ai essayé cette façon là aussi, ça me fait le même resultat.
    J'ai même tenté une fonction récursive qui ne lance pas le sendData tant que le value modifié => même résultat.

    J'ai l'impression qu'il prend en compte la modification mais qu'il n'affiche qu'à la fin du httpRequest...

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    En faisant comme ça, il n'y a aucune raison.
    Par contre sendData() tout seul, c'est un peu juste pour un appel Ajax

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    J'ai retesté pour bien être sûr mais ça ne passe pas

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Comme on ne voit pas tout ton appel Ajax : tu le fais en synchrone ou asynchrone ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    Voici à quoi ressemble ma fonction httprequest, ce sera peut être plus simple

    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
    function sendData(id_use, data, page, method) {
    	if(document.all) {
           		//Internet Explorer
           	 	var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
        	}
        	else {
         		//Mozilla
           		var XhrObj = new XMLHttpRequest();
    	    }
    	    if(method == "GET") {
    	        if(data == 'null') {
    	            XhrObj.open("GET", page);
    	        }
    	        else {
    	            XhrObj.open("GET", page+"?"+data);
    	        }
    	    }
    	    else if(method == "POST") {
    	        XhrObj.open("POST", page);
    	    }
     
    	    XhrObj.onreadystatechange = function() {
    			if (XhrObj.readyState == 4 && XhrObj.status == 200) {
    				switch(id_use) {
    					//Inscription
    					case "1":  
    	    	    	    	    document.getElementById('bulle').style.display = 'none';
    					break;
    				}
    			}
    	    }    
    	    if(method == "GET") {
    	    	    XhrObj.send(null);
    	    }
    	    else if(method == "POST" && id_use == 1) {
    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	        XhrObj.send("submit="+_submit);
    	    }
    	}

Discussions similaires

  1. Ordre d'execution Integration Services
    Par geof dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/11/2007, 15h26
  2. [AS3] Ordre d'execution
    Par eXiaNazaire dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 17/08/2007, 14h24
  3. [M2] structure multi-modules et ordre d'execution
    Par dvicente72 dans le forum Maven
    Réponses: 11
    Dernier message: 03/06/2007, 20h41
  4. Réponses: 5
    Dernier message: 29/12/2005, 13h47
  5. probleme ordre d'execution de ma page asp
    Par Shosho dans le forum ASP
    Réponses: 5
    Dernier message: 10/05/2005, 14h51

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