begin process at 2012 02 13 16:55:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

readystate qui reste à 1


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

readystate qui reste à 1

vendredi 27 juin 2008 à 15:23:34 | readystate qui reste à 1

jpclutier

Bonjour à tous,
J'ai fait un peu d'ajax qui me permet de récupérer des data dans une BdD. Avec FireFox tout fonctionne correctement mais avec IE7 le readystate reste bloqué à 1 (j'ai mis un alert) et les data n'apparaissent jamais. Pourtant dans le php qui exécute la requête il y a la création d'un document.xml contenant les données renvoyées et ce fichier se créer avec les bonnes data !
J'ai fouillé sur le Web (et surtout ici) mais je ne trouve rien qui me permette d'avancer.
Si quelqu'un à une piste.......Please help !!!!
Je met mon bout de code :
var http_request = false;
 if (window.XMLHttpRequest)
 { /* Mozilla, Safari, IE7... */
   http_request = new XMLHttpRequest();
   if (http_request.overrideMimeType)
   {
    http_request.overrideMimeType('text/xml; charset=ISO-8859-1');
   }
  }
  else if(window.ActiveXObject)
  { /* IE <7 */
    try{
   http_request = new ActiveXObject("Msxml2.XMLDOM"); /* IE6 */
    }catch(e){
   try{
       http_request = new ActiveXObject("Microsoft.XMLDOM"); /* IE5 */

   }catch(e){}
   }
  }
 if (!http_request)
 {
  alert('Cannot create an XMLHttp instance');
  return false;
 }
 http_request.open('POST', url, true);
 http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
 http_request.send(param);
 http_request.onreadystatechange = function () 
 {
  if (http_request.readyState != 4)
  {
  alert("readystate="+http_request.readyState);
  }
  else
  {
     alert("readystate="+http_request.readyState);

   if (http_request.status == 200)
   {
 switch (navigateur)
 {
 case "FIREFOX2" :
  results=http_request.responseXML;
  break;
    case "IE7" :
  results=http_request.responseXML;
  break;
 default :
  break; 
 }
 suite(results,idchamp1,idchamp2,listed);
   }
   else
   {
    alert('There was a problem with the request.');
   }
  }
 }
}
La fonction suite générant l'affichage des données renvoyées au travers d'une liste déroulante.
Merci pour votre aide car cela fait deux jours que je passe là-dessus...

JP

vendredi 27 juin 2008 à 15:45:30 | Re : readystate qui reste à 1

ralecul

Salut,

Après une lecture en zig zag de ton code, je te propose de faire le send après avoir définit le onreadystatechange...(ya peut-être d'autres erreurs, j'ai pas testé ton code)

<mode pub on>
Tu peut aussi essayer de passer à Prototype, tu ne le regretteras pas !
http://www.javascriptfr.com/codes/CLASSE-AJAX-PROTOTYPE-ROCKS_46941.aspx
<mode pub off>
vendredi 27 juin 2008 à 15:54:32 | Re : readystate qui reste à 1

jpclutier

Merci à toi mais j'avais au départ le send après..même punition ! c'est en fouillant sur le net que j'ai vu que certains préconisaient de le mettre avant..j'ai déjà fait du prototypage pour un objet javascript..mais là j'avou que je ne l'avais pas vu ainsi..je vais regarder le lien..je mettrai le résultat des courses ici..

JP
vendredi 27 juin 2008 à 16:23:15 | Re : readystate qui reste à 1

bultez

Membre Club


je crois que pour IE, le XML n'est pas affichable comme ça
            ni avec http_request.responseXML ou Text.
avec FF d'ailleurs pas tout à fait non plus, même si les "value" s'affichent
           pas les balises.
du xml, n'est pas fait pour être afficher tel qule si ?
on en gère plutôt le contenu.

pas certain non plus qu'avec IE, il ne faille pas utiliser new ActiveXObject('Microsoft.XMLDOM');


ch'tiot exemple (  simplifié )  :    xml.htm

<HTML    Lang="fr">
<HEAD>
<meta http-equiv="content-type"
        content="text/html; charset=ISO-8859-1">
</head>
<body>
réponse:<div style="display:inline" id="aff"></div>
<script>
    var aff=document.getElementById('aff');
    function fin(recu)
    {    aff.innerHTML=
                recu.getElementsByTagName('prenom')[0].firstChild.nodeValue+' '+
                recu.getElementsByTagName('nom')[0].firstChild.nodeValue+"<br />";
    }
    if ( document.implementation.createDocument )
            {    var requete = new XMLHttpRequest();
                requete.onreadystatechange = function()
                {    if ( requete.readyState == 4 )
                    {    fin(requete.responseXML);
                        aff.innerHTML+=requete.responseText; // pas de balises
                    }
                }
                requete.open('POST','xml.xml',true);
                requete.send(null);
            }
    else    {    var xmlD = new ActiveXObject('Microsoft.XMLDOM');
                xmlD.async=true;
                xmlD.onreadystatechange = function ()
                {     if ( xmlD.readyState == 4 )
                    {    fin(xmlD);   
                        aff.innerHTML+=xmlD;  // rien
                    }
                }
                xmlD.load("xml.xml");
            }
</script>
</body>
</html>


le fichier xml :

<?xml version="1.0" encoding="ISO-8859-1"?>
    <personne>
        <qui>
            <prenom>gédéon</prenom>
            <nom>teuzeumani</nom>
        </qui>
    </personne>



                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 27 juin 2008 à 16:28:23 | Re : readystate qui reste à 1

bultez

Membre Club
pour IE il doit bien y avoir un    xmlD.quelquechose pour afficher,
mais pas cherché plus loin, pour moi c'est inutile avec du xml.

                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 27 juin 2008 à 16:30:17 | Re : readystate qui reste à 1

jpclutier

Merci Bultez je vais tester dés lundi...
pour Ralecul..euh j'ai pas tout compris sur le lien prototype..

JP
vendredi 27 juin 2008 à 16:38:22 | Re : readystate qui reste à 1

bultez

Membre Club

ça fonctionne, ça demande à être peaufiner,
est-ce que ça correspond à ce que tu veux ? tu nous diras.
mais xml et htm "rien à voir".
xml ce sont des données, htm une page affichée dans un navigateur.

                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 27 juin 2008 à 17:40:59 | Re : readystate qui reste à 1

bultez

Membre Club
il est vrai que je n'ai même pas percuté pour les autres navigateurs !
si c'est un fichier xml :


<HTML    Lang="fr">
<HEAD>
<meta http-equiv="content-type"
        content="text/html; charset=ISO-8859-1">
</head>
<body>
réponse:<div style="display:inline" id="aff"></div>
<script>
var aff=document.getElementById("aff");
var xmlD;
function xmlFin()
{    aff.innerHTML=    xmlD.getElementsByTagName("prenom")[0].firstChild.nodeValue+" "+
                        xmlD.getElementsByTagName("nom")[0].firstChild.nodeValue;
}
function xmlCharge()
{    if ( document.implementation && document.implementation.createDocument )
            {    xmlD = document.implementation.createDocument("", "", null);
                xmlD.onload = xmlFin;
            }   
    else     {    if (window.ActiveXObject)
                        {    xmlD = new ActiveXObject("Microsoft.XMLDOM");
                            xmlD.onreadystatechange = function ()
                            {    if (xmlD.readyState == 4)
                                {    xmlFin();    }
                            }
                        }
                else    {    alert('le navigateur ne supporte pas');
                            return;
                        }
            }
    xmlD.load("xml.xml");
}

xmlCharge();
</script>
</body>
</html>

"pas d'ajax là dedans"...


                Cordialement            Bul         [mon Site]     [M'écrire]


Cette discussion est classée dans : request, http, alert, readystate, if


Répondre à ce message

Sujets en rapport avec ce message

Problème de récupération de données avec AJAX [ par Diablotine666 ] Bonjour, Je souhaite récupérer des données contenues dans une base de données en utilisant de l'ajax afin de ne pas avoir à rechercher ma page. Mon co Vista et IE : problème charset [ par JiDW ] Bonjour!J'ai un soucis de charset avec mon code javascript après avec récupéré une page web sur un serveur distant (ndd différent)Mon code fonctionne Jquery - Appel ajax dans un modalbox [ par lostrailler ] Bonjour à tous, Je vous expose mon soucis avec jquery et le plugin modalbox. Je dois afficher un formulaire à remplir dans un modalbox. Jusque là pa navigator.appName [ par sikove ] Salut ^^quelqu'un sait si ce code peut fonctionner sur fiefox d'une autre maniere : var Nom = navigator.appName;if (Nom == 'Netscape') {alert("firefox Fonction AJAX qui ne se déclenche pas [ par Shivan0910 ] Bonjour, Je sollicite de votre bienveillance dans la résolution de ce problème qui tend à m'épuiser J'ai deux fonctions function creationXHR() { var JavaScript - Erreur = Null [ par SpaceHam ] Je veux faire en JavaScript une page de création bien simple. J'ai un message d'erreur qui m'affiche comme quoi on attend un objet qui serais à Null. Poser une limite de clic sur un lien par jour [ par thedealer ] Je cherche à limiter le nombre de clics sur un lien en ouvrant une certaine page selon le nombre de clics effectués par une meme IP (le compteur devra message alert ne fonctionne pas [ par hraiwen ] salut je veux faire des controle sur un formulaire avec msg alert dan la meme page voici mon code function verif_formulaire() { if(document.form_s Selects en cascade avec bdd Mysql [ par mdc888 ] Hello, Je sais, je vais avoir des remarques du genre : sujet ultra traité, mais je viens de passer une demi journée à chercher sur le web et faire de Amélioration de script [ par charlieddr ] Bonjour, Je posséde un script (libre)pour un QCM mais le soucis,le concepteur ne soutient plus son script. Il est en deux parties, le test (liste.html


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,018 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales