Probleme avec AJAX et internet explorer

Probleme avec AJAX et internet explorer - HTML/CSS - Programmation

Marsh Posté le 10-06-2006 à 01:03:39    

J'ai le code javascript suivant :


function executer(form) {
    var xhr_object = null;
    var texteRequete = document.getElementById('requete').value;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
     xhr_object = new XMLHttpRequest();
     if (xhr_object.overrideMimeType) {
      xhr_object.overrideMimeType('text/xml');
     }
    } else if (window.ActiveXObject) { // IE
      try {
       xhr_object = new ActiveXObject("Msxml2.XMLHTTP" );
      } catch (e) {
       try {
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
       } catch (e) {}
      }
    }
     
    xhr_object.open("POST", "executionRequete.php", true);
    xhr_object.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" );
    xhr_object.onreadystatechange = function anonymous() {
     if(xhr_object.readyState == 4) {
      var xmldoc = xhr_object.responseXML;
      document.getElementById('reponse').innerHTML = "";
      var conteneur = xmldoc.getElementById('contenu');
      document.getElementById('reponse').appendChild (conteneur);
       
      document.getElementById('reponse').style.display = 'block';
     }
    };
    xhr_object.send("requete="+texteRequete);
   }


 
Qui fait donc appel au fichier php suivant :


<?php
$sql_serveur="localhost";
$sql_user="***";
$sql_passwd="***";
$sql_bdd="cheerup";
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
$db_selected = mysql_select_db($sql_bdd,$db_link);
if (!$db_selected) {
 die ('Impossible d\'utiliser la base : ' . mysql_error());
}
 
$sql_bdd="cheerup";
$requete = ((isset($_GET['requete']))?$_GET['requete']:((isset($_POST['requete']))?$_POST['requete']:null));
 
header("Content-type: text/xml" );  
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n" );
echo("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n" );
echo("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n" );
echo("<head>\n" );
echo("<title>R&eacute;ponse &agrave; la requ&egrave;te SQL</title>\n" );
echo("<meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=iso-8859-1\"/>\n" );
echo("<meta name=\"Cache-Control\" content=\"no-cache, must-revalidate\"/>\n</head>\n" );
if ($requete == null) {
 echo("<body><div id=\"contenu\"><p>Demande invalide</p></div></body>\n</html>" );
 exit();
}
$reponse = mysql_query($requete);
 
if ($reponse !=false) {
 echo("<body>" );
 echo("<p>Voici le r&eacute;sultat de votre requ&egrave;te :</p>" );
 echo("<div id=\"contenu\"><table border=\"1\"><tbody>" );
 while ($row = mysql_fetch_row($reponse)) {
  echo("<tr>" );
  foreach ($row as $item) {
   echo ("<td>".($item?htmlentities($item):"&nbsp;" )."</td>" );
  }
  echo("</tr>" );
 }
 echo("</tbody></table></div>" );
 echo("</body>" );
}
else {
 echo("<body><div id=\"contenu\"><p>".mysql_error()."</p></div></body>" );
}
 
echo ("</html>" );
?>
 


 
Sous Firefox aucun probleme, mon code recupere ce que je veux dans le fichier xhtml généré et me laffiche dans le div "reponse" de mon document.
Sous Internet Explorer ca bloque. la fonction responseXML ne provoque pas d'erreur mais il me charge un document entierement vide ce qui fait que la ligne :

var conteneur = xmldoc.getElementById('contenu');


provoque un arret d'execution du script...
 
 
QQn pourrait-il m'aider? ca fait des heures que je bloque sur ce probleme...
 
Eric

Reply

Marsh Posté le 10-06-2006 à 01:03:39   

Reply

Marsh Posté le 27-07-2006 à 11:43:33    

J'ai le même problème que cooleric... Si quelqu'un a une solution ça serait sympa !!! merci

Reply

Marsh Posté le 27-07-2006 à 12:02:23    

C'est quoi ça ?
 
$requete = ((isset($_GET['requete']))?$_GET['requete']:((isset($_POST['requete']))?$_POST['requete']:null));
 
Tu récupères indifféremment en GET ou en POST ? ya $_REQUEST pour ça.
 
Ensuite, non, je ne vois pas d'erreur particulière... faudrait que je teste le code.
 
Un dernier détail : c'est quoi ce titre ? C'est pas du AJAX ça, tu récupères pas du XML, donc c'est juste XMLHttpRequest.

Reply

Marsh Posté le 27-07-2006 à 12:21:09    

Inverse ces deux lignes pour voir

Code :
  1. ActiveXObject("Microsoft.XMLHTTP" );


Code :
  1. ActiveXObject("Msxml2.XMLHTTP" );


 

Hermes le Messager a écrit :

Un dernier détail : c'est quoi ce titre ? C'est pas du AJAX ça, tu récupères pas du XML, donc c'est juste XMLHttpRequest.

[:grinking]  
 
 

Reply

Marsh Posté le 27-07-2006 à 13:53:31    

Hermes le Messager a écrit :

C'est quoi ça ?
 
$requete = ((isset($_GET['requete']))?$_GET['requete']:((isset($_POST['requete']))?$_POST['requete']:null));
 
Tu récupères indifféremment en GET ou en POST ? ya $_REQUEST pour ça.
 
Ensuite, non, je ne vois pas d'erreur particulière... faudrait que je teste le code.
 
Un dernier détail : c'est quoi ce titre ? C'est pas du AJAX ça, tu récupères pas du XML, donc c'est juste XMLHttpRequest.


du AJA  :o  (on reste dans les clubs de foot)

Reply

Marsh Posté le 27-07-2006 à 14:00:54    

C'est juste du javascript avec xmlhttprequest... [:spamafote]
 
c'est n'importe quoi de prétendre faire de l'ajax quand on ne manipule rien en XML...

Reply

Marsh Posté le 27-07-2006 à 15:27:31    

Hermes le Messager a écrit :

C'est juste du javascript avec xmlhttprequest... [:spamafote]
 
c'est n'importe quoi de prétendre faire de l'ajax quand on ne manipule rien en XML...


k :o, J'ai un moment cru que tu faisais référence à un topic pas si vieux où je quote:

masklinn a écrit :

si AJAX désignait potentiellement et originellement (ici) la stack de technos utilisées, il n'est plus aujourd'hui qu'un buzzword désignant tout et n'importe quoi (et globalement le pattern de modifier dynamiquement une page avec communication au serveur... ou pas)
 
Cadeau, lecture pour toi


Message édité par anapajari le 27-07-2006 à 15:28:08
Reply

Marsh Posté le 05-08-2006 à 16:39:59    

Pour Hermes, pas forcément besoin d'XML pour AJAX... Relis la définition de Wikipedia, et si t'es pas d'accord tu peux la changer, et fait de même avec les centaines de pages web qui donnent la même définition !
 

Hermes le Messager a écrit :

C'est juste du javascript avec xmlhttprequest... [:spamafote]
 
c'est n'importe quoi de prétendre faire de l'ajax quand on ne manipule rien en XML...


 
Et juste pour en rajouter une couche, c'est quoi les 3 premières lettres de xmlhttprequest ?

Reply

Marsh Posté le 05-08-2006 à 17:35:01    

goupil33 a écrit :

Pour Hermes, pas forcément besoin d'XML pour AJAX...


C'est sur que dans Asynchronous Javascript And XML, on utilise pas forcement de XML...


---------------
Martin
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed