begin process at 2010 03 17 04:42:50
  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 XMLHttpRequest sous Firefox [ par chino18 ] Bonsoir tout le monde!! Je désire effectuer une requête en AJAX, pour cela j'utilse ces deux fonctions: //*************** Console d'erreurs : Mal formé [ par Tilix ] Bonjour, J'ai un petit problème. J'execute mes scripts grâce à de l'AJAX et la fonction eval();, mais la console d'erreurs m'affiche des problèmes alo probleme controle de saisie avec du javascript dans un formulaire html.php [ par suethi75 ] BonjourJe controle les champs obligatoires dans mon formulaire cependant cela ne marche pas.Voici mon code javascript: function verifForm(){  if (docu 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 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 Recup d'une page aspx dans un span. AJAX a la place d'une iframe. [ par Targos ] Hello tout le monde.J'ai un petit probleme, je veux recupérer dans un d'une page html le contenu d'une page aspx.Pas de probleme j'ai utilisé XMLHttp


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,562 sec (3)

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