Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2007, 10:02
kh7
 
Fecha de Ingreso: noviembre-2007
Mensajes: 5
Antigüedad: 16 años, 5 meses
Puntos: 0
Ayuda con tema Ajax e IE7

Holas a todos , a ver si me pueden ayudar con un temita del ajax + asp + ie7 (netamente ajax ya que no me actualiza los datos de forma dinamica)

lo unico que hace el codigo es mostrar un select de una base de datos oracle,
y lo muestra en un div mas abajo,... Ahora, en estricto rigor, esto lo hace pero lo que no hace es que cuando se acutaliza la tabla en la base de datos no se ve reflejada en pantalla de forma automatica, y yo tengo puesto que el XMLHttpRequest se realice cada 1 segundo, mediante un setInterval...
bueno ademas puse un boton que realizara el ajax, por si acaso...cada vez que hago click en el tampoco me devuelve la tabla actualizada.

* ojo que no estoy usando asp.net solo es asp...

* Conste que esto sirve en Firefox 2.0.0.x
(por eso FF la lleva , e internet exploiter no:-p)

aqui va el codigo : (formu.asp)

Código:
<html>
<head>
<script>
function AnularPeticion(){ http.abort(); }

function handleHttpResponse()
{
    if(http.readyState == 4)
    {
        clearTimeout(timerAnular);
        if(http.status == 200)
        {
            if(http.responseText.indexOf('invalid') == -1)
            {
                //divide el resultado en comas
                //results=http.responseText.split(",");
                //document.getElementById("campoMsj").innerHTML=results[0];
                document.getElementById("campoMsj").innerHTML=http.responseText;
                enProceso=false;
             }
        }
        else
        {
            alert("No se pudo recuperar la información: " + http.statusText + ". (Status = " + http.status + ")");
        }
    }
}
function muestra()
{
    if(!enProceso && http)
    {
        //var valor=escape(document.getElementById("filtro").value);
        //var url="consulta.asp?filtro="+valor;
        var url="consulta.asp";
        //consulta.asp hace una consulta a una tabla en la base de datos,
        //y pone los datos ordenados en una tabla.
        http.open("GET",url,true);
        http.onreadystatechange = handleHttpResponse;
        enProceso=true;
        http.send(null);
    }
    else
    {
        alert("El sistema esta en proceso...");
    }
}
function getHTTPObject()
{
    var xmlhttp;
    if (!xmlhttp)
    {                       
        if(window.XMLHttpRequest)
        {
            try { xmlhttp = new XMLHttpRequest(); }
            catch(e) {
                alert("No se puede realizar la actualización de datos, consulte con soporte técnico")
                xmlhttp = false;
            }
        // branch for IE/Windows ActiveX version
        }
        else if(window.ActiveXObject)
        {
            try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
            catch(e) { 
                try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
                catch(e)
                {
                    alert("No se puede realizar la actualización de datos, consulte con soporte técnico")
                    xmlhttp = false;
                }
            }
        }              
    }
	return xmlhttp;
}

var enProceso = false; //comprueba proceso activo
var http = getHTTPObject(); //Crea el object XMLHttpRequest

//5000 = 5 segundos = 5000 milisegundos
var timerAnular = setTimeout("AnularPeticion()", 5000);
//realiza la funcion muestra cada 1 segundo (1000 milisegundos)
window.setInterval("muestra() ",1000); 

</script>
<style>
    div
    {
        border : hidden 2px #ff0000; 
        background : #FFF; 
        padding : 10px; 
        width : 100%; 
        height : 50%; 
        overflow : auto; 
    }
</style>
</head>
<body>
<form action="post">
<h3>PRUEBA</h3>
<input type="button" value="Actualizar Ahora" onclick="muestra();" />
<hr />
</form>
<div id="campoMsj"></div>
</body>
</html>
realmente no se que pasa que no me actualiza los registros ... y necesito la ayuda de los masters! osea ustedes!