[AJAX] XMLHttpRequest.responseXML et ie6
Bonjour,
Comme la plupart du temps, le code s'exécute bien sur firefox mais pas internet explorer.
J'ai cherché sur la FAQ, sur le forum comme (http://www.developpez.net/forums/d99...est-ie-retour/), et sur internet mais je n'arrive pas à résoudre mon problème.
Le XML généré par du php
Code:
1 2 3 4 5 6
| header("Content-Type: text/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo "<personne>\n";
echo "\t<president>".$president."</president>\n";
echo "\t<secretaire>".$secretaire."</secretaire>\n";
echo "</personne>\n"; |
une partie de l'interface
Code:
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 32 33 34
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-iso-8859-11">
<script src='includes/ajaxEngine.js'></script>
<title></title>
</head>
<body>
<FORM name="form1" METHOD=POST ACTION="">
<TABLE BORDER=0>
<TR>
<TD>Caisse locale</TD>
<TD>
<SELECT name="caisse" id="caisse" onClick="openPage('includes/ajaxBackEnd.php?ID_caisse='+document.getElementById('caisse').value);">
<OPTION VALUE="322">322 - OUTRE FORET</OPTION>
<OPTION VALUE="321">321 - HAGUENEAU BISCHWILLER</OPTION>
<OPTION VALUE="325">325 - SAVERNE MARMOUTIER</OPTION>
</SELECT>
<BR />
</TD>
</TR>
<TR>
<TD>Président</TD>
<TD>
<INPUT type=text name='president' id='president' value="">
</TD>
</TR>
<TR>
<TD>Secrétaire</TD>
<TD>
<INPUT type=text name="secretaire" id="secretaire" value="">
</TD>
</TR> |
la partie qui pose problème, lafonction avec l'XMLHttpRequest.xmlResponse
Code:
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 32 33 34 35
| function openPage(url)
{
var xhr;
try {xhr = new ActiveXObject('Msxml2.XMLHTTP');}
catch (e)
{
try {xhr = new ActiveXObject('Microsoft.XMLHTTP');}
catch (e2)
{
try {xhr = new XMLHttpRequest();}
catch (e3) {xhr = false;}
}
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
var doc;
doc = xhr.responseXML.xml;
var pre;
var sec;
pre = doc.getElementsByTagName('president')[0].firstChild.nodeValue;
sec = doc.getElementsByTagName('secretaire')[0].firstChild.nodeValue;
document.form1.president.value = pre;
document.form1.secretaire.value = sec;
}
}
xhr.open("GET", url);
xhr.send(null);
} |
Avec
Code:
doc = xhr.responseXML;
ça fonctionne sous firefox, mais j'ai Objet requis sous ie.
Avec
Code:
doc = xhr.responseXML.xml;
ça ne fonctionne plus sous firefox (Si l'appli tourne sous ie, c'est le principale), et ie me met Cet objet ne gère pas cette propriété ou cette méthode.
La ligne d'erreur est indiquée sur celle ci
Code:
pre = doc.getElementsByTagName('president')[0].firstChild.nodeValue;
Voila, merci d'avance.