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] Barre de chargement pendant une requête mysql


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut [AJAX] Barre de chargement pendant une requête mysql
    Bonjour à tous, je vais essayer d'être clair en exposant mon problème.

    La situation:
    J'ai une page avec 3 onglets, chaque onglet utilise ajax pour appeler une page php qui elle fait une requête sur une base de données mysql afin d'afficher les résultats voulus.

    J'aimerai savoir si il serait possible, pendant que la requête mysql se fait, d'afficher un "Chargement en cours" et de l'enlever et afficher mes résultats une fois la requête finie.

    1 onglet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:maFonctionAjax('X','Y')">
    maFonctionAjax
    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
      function maFonctionAjax(X,Y)
    {
    var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
      OAjax.open('POST',"page_avec_script.php",true);
      OAjax.onreadystatechange = function()
      {
          if (OAjax.readyState == 4 && OAjax.status==200)
          {
              if (document.getElementById)
              {
                  if (OAjax.responseText =='true') { /* OK */
                        document.getElementById('details').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                  }else{                             /* PAS OK */
                        document.getElementById('details').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                  }
              }
          }
      }
      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      OAjax.send('X='+X+'&Y='+Y);
     
      }
    page_avec_script.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    blabla requêtes mysql, affichage des résultats dans un tableau

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
      if(OAjax){document.getElementById('tempo').innerHTML = 'En attente'}
        //  Si l'objet OAjax a pu être créé, on affiche un message dans la div 'tempo'
      OAjax.open('POST',"page_avec_script.php",true);
      OAjax.onreadystatechange = function()
      {
          if (OAjax.readyState == 4 && OAjax.status==200)
          {
              document.getElementById('tempo').innerHTML = '';
                // On supprime le message d'attente
              if (document.getElementById)
              {
                  if (OAjax.responseText =='true') { /* OK */
                        document.getElementById('details').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                  }else{                             /* PAS OK */
                        document.getElementById('details').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                  }
              }
          }
      }
      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      OAjax.send('X='+X+'&Y='+Y);
     
      }
    Il ne s'agit que d'un exemple rapide.
    Tu peux l'adapter selon tes besoins. En particulier pour effacer le loader, mieux vaut tester uniquement sur readyState == 4 puis faire le test sur status...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut
    Yes, cela fonctionne, c'était si simple... Merci

  4. #4
    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
    Tu peut générer un gif animé sur http://www.ajaxload.info/ et mettre a la place de "En attente".
    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
     
    var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
      //
     //  if(OAjax){document.getElementById('tempo').innerHTML = 'En attente'}
      // Tu peut mettre un Gif animé a la place du texte :
     
      if(OAjax){document.getElementById('tempo').innerHTML = '<img src="./images/loading.gif" />'}
     
      OAjax.open('POST',"page_avec_script.php",true);
      OAjax.onreadystatechange = function()
      {
          if (OAjax.readyState == 4 && OAjax.status==200)
          {
              document.getElementById('tempo').innerHTML = '';
                // On supprime le message d'attente
              if (document.getElementById)
              {
                  if (OAjax.responseText =='true') { /* OK */
                        document.getElementById('details').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                  }else{                             /* PAS OK */
                        document.getElementById('details').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                  }
              }
          }
      }
      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      OAjax.send('X='+X+'&Y='+Y);
     
      }

Discussions similaires

  1. [AJAX] Retour d'un json dans Ajax d'une requête Mysql
    Par laplumedoie dans le forum AJAX
    Réponses: 11
    Dernier message: 16/03/2013, 09h15
  2. [AJAX] faire une requête mysql ajax
    Par affreuxzozo dans le forum AJAX
    Réponses: 1
    Dernier message: 04/05/2009, 13h16
  3. Comment créer une barre d'attente pendant une requête
    Par darkspoilt dans le forum VBA Access
    Réponses: 8
    Dernier message: 14/08/2007, 09h18
  4. Barre de progression sur une requète SQL
    Par Wilco dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/04/2005, 14h20
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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