Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2011, 06:17
Avatar de jja
jja
 
Fecha de Ingreso: diciembre-2010
Ubicación: BCN
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Ajax funciona en Firefox, pero no en IE9 ni en Chrome

Hola a todos, qué tal,

Me encuentro desarrollando una aplicación Web en ajax, es de las primeras que hago, y aún me quedan algunas dudas por solventar.

Ahora mismo he programado una aplicación en PHP y MySql que actualiza el texto de un DIV con el de una columna de una tabla de la BBDD. Funciona correctamente en Firefox, pero en Internet Explorer 9 y Chrome no funciona por más combinaciones de objetos Ajax que he puesto.

Os copio a continuación el código que utilizo por si veis alguna irregularidad:

Esta es la página PHP que contiene el DIV con la que hago la consulta mediante ajax, como veis, cada 2 segundos realizo una consulta a BBDD:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
<body onLoad="setInterval('MostrarConsulta(\'consulta.php\')',2000);">
...
<div id="result"></div>
...
</html>
Esta sería la página javascript donde se encuentra la función "MostrarConsulta" que llama a la página consulta.php que realiza la llamada a la BBDD:

Código:
function objetoAjax(){
	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 MostrarConsulta(datos){
	divResultado = document.getElementById('result');
	ajax=objetoAjax();
	ajax.open("GET", datos);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = divResultado.innerHTML + ajax.responseText;
		}
	}
	ajax.send(null)
}
Y esta es la página consulta.php (aunque en ella no está el problema en principio):

Código:
...		
		include "conexion.php";
		$result=mysql_query("SELECT campo FROM tabla WHERE id=" . $id);
		while($row = mysql_fetch_array($result))
		{
			echo "<br/>" . $row["campo"];
		}
		include "cerrar-conexion.php";
...
Gracias de antemano, un saludo