Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de message d'attente.

    25 février 2009 à 17:24:57

    Bonjour,

    J'utilise à partir d'une page php une fonction javascript utilisant de l'ajax pour afficher les résultats d'une requête située dans une autre page php. comme ci-dessous:

    function affichageAjax(){
            //Affichage du message
           document.getElementById("chargement").style.display ="block";
    
            /*
               Code permettant de récupérer des critères de recherche
           */
    		     // On teste si on récupère bien quelque chose à partir de la requête asynchrone
    		     if (resultat = file ("monLien")) {
                           //récupération des données
    			var res =resultat;
                           // Affichage des donnéesdans ma page php
    			document.getElementById("echantil").innerHTML = res;
    				
    		     }
    	   //Suppression du message d'attente		
               document.getElementById("chargement").style.display ="none";
    }
    


    Le principe est simple et marche sous firefox. Cependant ça ne marche pas avec IE : aucun message ne s'affiche mais la fonction marche quand même. J'ai beau avoir fait des recherches sur google, je n'ai trouvé aucune solution. En outre, si j'enlève la dernière ligne de ma fonction, le message s'affiche bel et bien mais bien sûr ne s'enlève pas! Si quelqu'un pouvait m'aider, ce serait un grand soulagment. Merci
    • Partager sur Facebook
    • Partager sur Twitter
      25 février 2009 à 19:11:32

      Je ne vois pas l'ajax =o

      Mais je pense, que ton ajax est en mode synchone, donc, lorsque que tu l'appelles, cela bloque le JS.

      Et donc, je pense que IE envoi "l'ordre" de faire apparaitre le truc dès que le JS est débloquer, mais quand le js se débloque, il envoi aussi de le masquer.

      Bon ok c'est pas très clair ce que je dis.. xD

      Essai ça:
      function affichageAjax(){
              //Affichage du message
             document.getElementById("chargement").style.display ="block";
             setTimeout(affichageAjaxsuite, 100);
      }
      
      function affichageAjaxsuite()
      {
              /*
                 Code permettant de récupérer des critères de recherche
             */
      		     // On teste si on récupère bien quelque chose à partir de la requête asynchrone
      		     if (resultat = file ("monLien")) {
                             //récupération des données
      			var res =resultat;
                             // Affichage des donnéesdans ma page php
      			document.getElementById("echantil").innerHTML = res;
      				
      		     }
      	   //Suppression du message d'attente		
                 document.getElementById("chargement").style.display ="none";
      }
      



      Ps: C'est pas la meilleure solution, mais s'en est une, je pense
      • Partager sur Facebook
      • Partager sur Twitter
        26 février 2009 à 9:16:31

        Il est vrai que j'aurais pu le préciser : l'ajax est contenu dans la fonction file :
        function file (fichier) {
        		    // On comence par regarder le navigateur utilisé...
        		   // S'il est incompatible, on ne fait rien.
        		    if (window.XMLHttpRequest) { // FIREFOX
        		        xhr_object = new XMLHttpRequest();
        		    }
        		    else if (window.ActiveXObject) { // IE
        		        xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
        		    }else{
                                return (false);
                            }
        		   // Ensuite, on va chercher le fichier souhaité
        		   xhr_object.open("POST", fichier, false);
        		   xhr_object.send(null);
        		   // Le code readyState renvoie des infos sur l'état d'avancement
        		   // 4 => On a le résultat.
        		   if (xhr_object.readyState == 4) {
        			 return (xhr_object.responseText);
        		   } else{
        		         return(false);
        		   }
        }
        


        Sinon j'ai essayé ta méthode mais le résultat reste le même. Merci quand même.
        • Partager sur Facebook
        • Partager sur Twitter

        Problème de message d'attente.

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown