Foros del Web » Programando para Internet » Javascript »

Problema con innerHTML

Estas en el tema de Problema con innerHTML en el foro de Javascript en Foros del Web. Qué tal, aquí con un problema: Mediante php obtengo una cadena xml y al momento de querer mostrarla, me da error: Código: <script type="text/javascript"> function ...
  #1 (permalink)  
Antiguo 06/04/2011, 15:46
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Problema con innerHTML

Qué tal, aquí con un problema: Mediante php obtengo una cadena xml y al momento de querer mostrarla, me da error:

Código:
<script type="text/javascript">
function loadXMLStr(txt)
{
    if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  }
else // Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(txt); 
  }

x=xmlDoc.getElementsByTagName("xml");

ref=(x[0].getElementsByTagName("referencia")[0].childNodes[0].nodeValue);
res=(x[0].getElementsByTagName("response")[0].childNodes[0].nodeValue);
aut=(x[0].getElementsByTagName("aut")[0].childNodes[0].nodeValue);
//err=(x[0].getElementsByTagName("error")[0].childNodes[0].nodeValue);
cNa=(x[0].getElementsByTagName("ccName")[0].childNodes[0].nodeValue);
cNu=(x[0].getElementsByTagName("ccNum")[0].childNodes[0].nodeValue);
am=(x[0].getElementsByTagName("amount")[0].childNodes[0].nodeValue);
type=(x[0].getElementsByTagName("type")[0].childNodes[0].nodeValue);
txt="<span class='campo'>Referencia: </span>" + "<span class='valor'>"+ref + "</span>"+
    "<span class='campo'>Respuesta: </span>" + "<span class='valor'>"+res + "</span>"+
    "<span class='campo'>Autorización: </span>" + "<span class='valor'>"+aut + "</span>"+
    //"<span class='campo'>Error: </span>" + "<span class='valor'>"+err + "</span>"+
    "<span class='campo'>Nombre Tarjetahabiente: </span>" + "<span class='valor'>"+cNa + "</span>"+
    "<span class='campo'>Monto: </span>" + "<span class='valor'>"+am + "</span>"+
    "<span class='campo'>Tipo: </span>" + "<span class='valor'>"+type + "</span>";
alert(txt);
document.getElementById("dad").innerHTML=txt;
}
</script>


<?php
echo $xml;
echo '<script type="text/javascript">
        var js = "'. $xml .'";
      loadXMLStr(js);
</script>';
?>
<div id="dad"></div>
No me actualiza el div, de hecho pongo un alert y sí me imprime el código html que quiero mostrar.

alert(txt);

Cita:
Internet Explorer 8

Detalles de error de página web

Mensaje: 'document.getElementById(...)' is null or not an object
Línea: 76
Carácter: 1
Código: 0
Cita:
"Chrome 10"
Uncaught TypeError: Cannot set property 'innerHTML' of null
loadXMLStrresp:77
(anonymous function)resp:84
Le doy vueltas y no hallo la solución! Gracias de antemano
  #2 (permalink)  
Antiguo 06/04/2011, 16:10
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema con innerHTML

parece que aún no está cargado el objeto en el árbol del documento. prueba a cambiar el orden
Cita:
<div id="dad"></div>
<?php
echo $xml;
echo '<script type="text/javascript">
var js = "'. $xml .'";
loadXMLStr(js);
</script>';
?>
  #3 (permalink)  
Antiguo 07/04/2011, 08:08
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con innerHTML

Pequeño detalle! gracias

Etiquetas: innethtml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:58.