El caso es que tengo un ajax de dos documentos, asi sin mas, experimental:
trabajador.php: Se encarga de recoger los datos de una BD y publicarlos en XML para luego recogerlos.
Código PHP:
<?
header('Content-Type: text/xml');
echo '<?xml version="1.0" standalone="yes"?>';
$id=$_GET["id"];
include("../include.php");
$res=mysql_query("select * from articulos where id=".$id, $link);
$row=mysql_fetch_array($res);
?>
<articulo>
<id><?=$row["id"]?></id>
<titulo><?=$row["titulo"]?></titulo>
<fechahora><?=f_mysql2normal($row["fechahora"])?></fechahora>
<categoria><?=$row["categoria"]?></categoria>
<autor><?=$row["autor"]?></autor>
<texto><![CDATA[ <?=$row["texto"]?> ]]></texto>
</articulo>
index.php: Este se encarga de hacer las peticiones a trabajador.php
Código PHP:
<?
include("../include.php");
?>
<script language="javascript">
/* se encarga de crear el objeto httpObject */
function nuevoHttpObject(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function cargarContenido(){
//alert("cargando...");
ajax=nuevoHttpObject();
var elSelect=document.getElementById("elSelect");
var elArticulo=document.getElementById("elArticulo");
var elTitulo=document.getElementById("elTitulo");
var laInfo=document.getElementById("laInfo");
var laXapa=document.getElementById("laXapa");
elId=elSelect.options[ elSelect.options.selectedIndex ].value;
ajax.open("GET", "trabajador.php?id="+elId, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) { //listo
elXML=ajax.responseXML;
elTitulo.innerText=elXML.getElementsByTagName("titulo").item(0).firstChild.data;
laInfo.innerText=elXML.getElementsByTagName("fechahora").item(0).firstChild.data;
laXapa.innerHTML=elXML.getElementsByTagName("texto").item(0).firstChild.data;
}
}
ajax.send(null);
}
</script>
</head>
<body>
<select id="elSelect" size="15" onchange="cargarContenido()">
<?
$res=mysql_query("select id,titulo from articulos order by fechahora desc",$link);
while($row=mysql_fetch_array($res)) {
?>
<option value="<?=$row["id"]?>"><?=$row["titulo"]?></option>
<?
}
?>
</select>
El caso es que funciona tanto en Opera como en Firefox a la perfeccion. En IE da un error javascript en estas tres lineas:
Código:
Es un error que no se como solucionarlo, porque he intentado combinaciones aleatorias sin resultado, y no se como trabajar el XML recibido con javascript.elTitulo.innerText=elXML.getElementsByTagName("titulo").item(0).firstChild.data; laInfo.innerText=elXML.getElementsByTagName("fechahora").item(0).firstChild.data; laXapa.innerHTML=elXML.getElementsByTagName("texto").item(0).firstChild.data;
Si me echais una manita, y encontrais alguna referencia para el XML en javascript estaré mas que satisfecho.
Un saludo y agradecimientos adelantados, que leer este post ya es muxo !