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] Chargement d'un gif avant le resutat de ma requete


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Par défaut [AJAX] Chargement d'un gif avant le resutat de ma requete
    Bonjour à tous,
    J'ai une fonction qui marche tres bien en AJAX et je voudrais rajouter un gif pour faire patienter avant le resultat de ma requete.
    voila ma fonction
    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
     
    function requete(page,select,form,target,target1,target2,target3,target4)
    {
    	getXhr();
     
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState == 4)
    		{		
    		if(xhr.status == 200 || xhr.status == 304)
    			eval(xhr.responseText);
    		}
    	};
    	xhr.open("POST",page,true);
    	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	xhr.send("form="+escape(form)+"&type="+escape(select.id)+"&id="+escape(select.value)+"&target="+escape(target)+"&target1="+escape(target1)+"&target2="+escape(target2)+"&target3="+escape(target3)+"&target4="+escape(target4));
    }
    J'ai essayé cà mais ca ne marche pas

    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
    function requete(page,select,form,target,target1,target2,target3,target4)
    {
    	getXhr();
    	
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState < 4)
    		{
    		xhr.responseText = '<p><center><img src="gifs/wait.gif" alt="Patientez!" /></center></p>';
    		}
    		if(xhr.readyState == 4)
    		{		
    		if(xhr.status == 200 || xhr.status == 304)
    			eval(xhr.responseText);
    		}
    		else
    		{
    
    	};
    	
    	xhr.open("POST",page,true);
    	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	xhr.send("form="+escape(form)+"&type="+escape(select.id)+"&id="+escape(select.value)+"&target="+escape(target)+"&target1="+escape(target1)+"&target2="+escape(target2)+"&target3="+escape(target3)+"&target4="+escape(target4));
    }
    mais ca ne marche pas quelqu'un aurait une idée?
    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 112
    Par défaut
    Tu sais quoi, je vais te donner un site avec des tutoriels super bien, mais que si tu ne le donnes à personne hein, paske ca ne doit être réservé qu'a certains privilégiés et pas pour tous !

    Ce site s'appelle

    http://www.developpez.com

    Tu me crois si tu veux, mais si tu vas dans la rubrique Cours => Développement Web => Ajax, tu as un cours qui s'appelle Introduction à ajax et interaction avec php, et dedans il y a exactement ce que tu veux à la section III-B

    Allez, comme je suis sympa :

    http://gael-donat.developpez.com/web/intro-ajax/#LIII-B

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Par défaut Merci
    Merci pour ton lien que je connaissais déja mais le probleme est un peu plus complexe que cà. Ma fonctione est utilisée plusieurs fois dans une meme page et l'identifiannt du div est variable selon le nombre de parametre target,target1,target2....
    De plus je ne veux pas ajouter à toutes mes pages des div cachés mais recuperer les existants et les remplacer le temps du traitement de la requete par un gif d'attente

  4. #4
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 112
    Par défaut
    Tu ne peux pas jouer comme tu le fais avec ton responseText.

    Ce qu'il faut faire, c'est avant ton if(xhr.readyState < 4) jouer avec des div que tu rends visibles ou auxquels tu change le contenu html, et ensuite, tu les remets dans leur état normal au xhr.readyState == 4

    Ensuite, on te donne une méthode qui marche, si tu veux faire autrement, libre à toi de chercher...

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

Discussions similaires

  1. [AJAX] Chargement d'une seule partie de la page
    Par gids01 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 25/03/2007, 19h44
  2. [FLASH MX2004] [AS2] Attendre la fin de chargement d'un fichier avant de continuer.
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 01/03/2007, 15h13
  3. [AJAX] chargement infini de la page ..
    Par dada17 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2007, 15h01
  4. [AJAX] Chargement dynamique de CSS
    Par drannh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/12/2006, 12h09
  5. attendre la fin de chargement d'une page avant de continuer le script
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 09h50

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