Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas al poner el resultado de consulta ajax en innerHTML en IE8

Estas en el tema de Problemas al poner el resultado de consulta ajax en innerHTML en IE8 en el foro de Frameworks JS en Foros del Web. El problema es que tengo es que funciona el ajax pero pero cuando quiero poner el resultado de una consulta en innerHTML (en IE8) no ...
  #1 (permalink)  
Antiguo 25/05/2009, 11:42
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 5
Problemas al poner el resultado de consulta ajax en innerHTML en IE8

El problema es que tengo es que funciona el ajax pero pero cuando quiero poner el resultado de una consulta en innerHTML (en IE8) no aparece nada..

El codigo

function cargarContenido(pagina,destino){
var contenedor;
var ajax;
contenedor = document.getElementById(destino);
ajax = nuevoAjax();
ajax.open("POST", pagina, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
alert(ajax.responseText);ESTE ALERT ME TIRA LO QUE QUIERO pero no me lo pone en el innerHTML.
document.getElementById(destino).innerHTML = ajax.responseText;
}
}
ajax.send(null);
}


ACALRO: SI FUNCIONA EN FIREFOX..

muchas gracias
salu2




ALGUNA AYUDAAAAAAAAAAAAAAA??????????????????????????????? ?

Última edición por sandinosaso; 26/05/2009 a las 09:29 Razón: No han habido respuestas
  #2 (permalink)  
Antiguo 26/05/2009, 14:00
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 18 años, 2 meses
Puntos: 6
Respuesta: Problemas al poner el resultado de consulta ajax en innerHTML en IE8

en destino es el id del elemento html, verifica si el elemento tiene ese id como atributo, despues verifica si el elemento tiene esa propiedad, p.ej un input no tiene innerHTML.
Otro detalle es que la funcion se ejecuta fuera de linea entonces puede ser que el valor de "destino" se pierda.
Generalmente lo que yo hago es
Código:
eval("var fnTMP =function() {if (ajax.readyState==4) {document.getElementById('"+destino+"').innerHTML = ajax.responseText;}}");
ajax.onreadystatechange=fnTMP;
__________________
No todo lo que se hace en segundo plano es AJAX
  #3 (permalink)  
Antiguo 27/05/2009, 08:14
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Problemas al poner el resultado de consulta ajax en innerHTML en IE8

He probado como me has dicho y no funciona...pego aqui todo el codigo completo para ver si me puedes dar una mano...

El campo es un DIV asi que tiene la propiedad innerHTML y repito funciona en firefox..

muchas gracias...salu2


<?php
include '../fun_mostrar.php';
list ($resultado_secciones, $reg_secciones, $any_error_seccion, $msg_error_seccion) = muestro_Secciones(USUARIO,PASS);
?>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="../graficos/favicon2.ico" />
<title>.:: Agenda ::.</title>

<script type="text/javascript" src="../mootools/mootools-yui-compressed.js"></script>
<script type="text/javascript" src="../mootools/sexyalertbox.v1.2.moo.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="../mootools/sexyalertbox.css"/>
<link rel="stylesheet" type="text/css" href="../estilos/estilosagenda.css" />

<script type="text/javascript" charset="iso-8859-1" src="../funciones_comunes.js"></script>
<script>

function nuevoAjax()
{
var oHttp=false;
var asParsers=["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0",
"Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var iCont=0; ((!oHttp) && (iCont<asParsers.length)); iCont++)
{
try
{
oHttp=new ActiveXObject(asParsers[iCont]);
}
catch(e)
{
oHttp=false;
}
}

if ((!oHttp) && (typeof XMLHttpRequest!='undefined'))
{
oHttp=new XMLHttpRequest();
}
return oHttp;
}

function resaltar(elEvento)
{
var evento = elEvento || window.event;
switch (evento.type)
{
case 'mouseover':
this.style.backgroundColor = '#FCC000';
break;
case 'mouseout':
this.style.backgroundColor = '#EAEAEA';
break;
}
}


function cargarContenido(pagina,destino){
var contenedor;
contenedor = document.getElementById(destino);

var ajax;
ajax = nuevoAjax();
ajax.open("POST", pagina, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//alert(ajax.responseText);
document.getElementById(contenedor).innerHTML = ajax.responseText;
//document.getElementById(destino).innerHTML = "completado";
}
}
ajax.send(null);
}



window.onload = function(){

document.getElementById("menuAlta").onmouseover=re saltar;
document.getElementById("menuAlta").onmouseout=res altar;
document.getElementById("menuBaja").onmouseover=re saltar;
document.getElementById("menuBaja").onmouseout=res altar;
document.getElementById("menuModif").onmouseover=r esaltar;
document.getElementById("menuModif").onmouseout=re saltar;
}


</script>
</head>

<body>

<div id="div_volver">
<a href="../main.php">Volver</a>
</div>


<div align="center" width="90%" height="10%">
<h3>AGENDA</h3>
</div>

<div id="menuAlta" class='Menu' onClick="cargarContenido('../altaAgenda.php','div_ADM');">
ALTA
</div>
<div id="menuBaja" class='Menu' onClick="cargarContenido('../bajaAgenda.php','div_ADM');">
BAJA
</div>
<div id="menuModif" class='Menu' onClick="cargarContenido('../modificacionAgenda.php','div_ADM');">
MODIFICACION
</div>


<div id="div_ADM" align="center" class="div_ADM">
</div>

</body>
</html>
  #4 (permalink)  
Antiguo 27/05/2009, 12:03
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 5
De acuerdo Respuesta: Problemas al poner el resultado de consulta ajax en innerHTML en IE8

Encontre el problema:

Resulta que las tres paginas que queria cargar..(una en cada div)..empezaban con
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
y no se porque si les quito eso andan en IE sino no hay forma que interprete que lo que pongo en el innerHTML del div es una pagina...


Doy el tema por cerrado..
Saludos y gracias.
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 14:45.