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

AJAX Discussion :

[AJAX] Message 'Veuillez patienter' en attendant que la reqûete se termine.


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut [AJAX] Message 'Veuillez patienter' en attendant que la reqûete se termine.
    Bonjour,

    Je me suis directement inspiré de la documentation suivante pour faire mes essais (mais sans aucun succès).
    http://gael-donat.developpez.com/web/intro-ajax/

    J'ai de une lourde requête SQL à effectuer, et pour rendre cela plus agréable j'ai décidé de m'aider de l'Ajax.

    En effet,
    - L'utilisateur clique sur le mot 'Calculer' et un bloc div apparait alors avec le message 'Veuillez patienter'.
    -Une fois la requête SQL terminé le bloc div affiche le résultat.

    Voici ce que j'ai fait :
    Page index.php : (sans les header, body & co)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="tumevoispas" id="message">Veuillez patienter...</div>
    <a href="javascript:ajax();">Calculer</a>
    <script type="text/javascript" src="js/ajax.js"></script>
    Fichier ajax.js
    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
    function ajax()
    {
        var xhr=null;
     
        if (window.XMLHttpRequest) { 
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) 
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { show_ajax(xhr); };
     
        //on affiche le message d'acceuil
        document.getElementById("message").className="tumevois";
     
        //on appelle le fichier reponse.txt
        xhr.open("GET", "http://pipeul.com/betaEmailing/Nico/frequence1.php", true);
        xhr.send(null);
    }
     
    function show_ajax(xhr)
    {
        if (xhr.readyState==4) 
        {
        	var docXML= xhr.responseXML;
        	var items = document.getElementsByTagName("donnee")
        	document.getElementById("message").className="tumevoispas";
    		document.innerHTML=items;
        }
    }
    Fichier reponse.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /* Connexion BDD et ma requête SQL*/
    $resultat = $data[0];
    echo '<DIV id="donnee">'.$resultat.'</DIV>';
    Quand je clique sur 'Calculer', la bloc 'Veuillez patienter' apparait bien mais le résultat ne vient point.

    Merci de votre aide, ca doit être tout bête.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    ça se joue sur l'etat du readyState (relire le tutoriel)

    * 0 non initialisée
    * 1 en chargement
    * 2 chargée
    * 3 en cours de traitement
    * 4 terminée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function show_ajax(xhr)
    {
    if (xhr.readyState!=4) 
        {
    	document.innerHTML="Veuillez patienter";
        }    
    if (xhr.readyState==4) 
        {
        	var docXML= xhr.responseXML;
        	var items = document.getElementsByTagName("donnee")
        	document.getElementById("message").className="tumevoispas";
    		document.innerHTML=items;
        }
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Salut andry.aime

    Merci pour la petite précision, maleuresement le résultat n'apparait toujours pas.
    Quand je clique sur calculer le div passe bien avec la classe 'tu me vois pas' (donc disparait) mais le div avec l'id "donnee" n'apparait pas.

    Je pense personnellement que c'est un soucis au moment d'inserer mon bloc div "donnee", peut etre qu'il y a une erreur à ce niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        	var docXML= xhr.responseXML;
        	var items = document.getElementsByTagName("donnee")
        	document.getElementById("message").className="tumevoispas";
    	document.innerHTML=items;
    merci.

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Niki59 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // ...
    var items = document.getElementsByTagName("donnee")
    // ...
    Bizarre, ça ^^

    Tu as des balises <donnee></donnee> dans ta page ? (je dis bien dans la page, pas dans la réponse XML)

    Tu ne te serais pas emmelé les pinceaux avec document.getElementById ?

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function show_ajax(xhr)
    {
    if (xhr.readyState!=4) 
        {
    	document.getElementById('donnee').innerHTML="Veuillez patienter";
        }    
    if (xhr.readyState==4) 
        {
        	var items = xhr.responseText;
        	document.getElementById("message").className="tumevoispas";
    	document.getElementById('donnee').innerHTML=items;
        }
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Exact! Merci pour votre aide!

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

Discussions similaires

  1. Message "Veuillez patienter" pour une tâche un peu longue
    Par Paul TOTH dans le forum Contribuez
    Réponses: 13
    Dernier message: 01/07/2016, 22h45
  2. Boîte de message sans bouton "Veuillez patienter..."
    Par Droïde Système7 dans le forum Delphi
    Réponses: 18
    Dernier message: 14/02/2007, 10h38
  3. Afficher une image loading en attendant que la page se charge
    Par toddy_101 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/02/2007, 11h45
  4. Création boîte "Veuillez patienter..."
    Par tomy29 dans le forum Delphi
    Réponses: 2
    Dernier message: 02/01/2007, 11h06
  5. Message personnalisé "Veuillez patienter"
    Par jmde dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2006, 12h07

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