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

Problema con ajax en ie

Estas en el tema de Problema con ajax en ie en el foro de Frameworks JS en Foros del Web. Hola amigos, Estoy usando en concepto de ajax, pero lo extraño es que en firefox funciona en el segundo click y en ie no funciona ...
  #1 (permalink)  
Antiguo 18/11/2007, 10:17
 
Fecha de Ingreso: agosto-2001
Ubicación: Lima
Mensajes: 123
Antigüedad: 23 años, 2 meses
Puntos: 0
Problema con ajax en ie

Hola amigos,
Estoy usando en concepto de ajax, pero lo extraño es que en firefox funciona en el segundo click y en ie no funciona :(
Lo que deseo hacer es validar un dato con ajax si hay error muestro un mensaje caso contrario llamo a otro script al cual debo de pasar parametros.
Aqui esta el codigo:

var http = getXmlHttpObject();

function getXmlHttpObject()
{
try {
objetus = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e)
{
try {
objetus= new ActiveXObject("Microsoft.XMLHTTP");
}catch (E)
{
objetus= false;
}
}
if (!objetus && typeof XMLHttpRequest!='undefined')
{
objetus = new XMLHttpRequest();
}
return objetus;
}


funcion Valida(scriptPHP,dato1,dato2,dato3)
{
if(http)
{
var urlget="valida.php";
urlget=urlget+"?dato1="+dato1+"&dato2="+dato2+"&da to3="+dato3;
http.open("GET",urlget,true);
http.onreadystatechange = procesaRespuesta(scriptPHP,dato1,dato2,dato3);
http.send(null);
}

}


function procesaRespuesta(scriptPHP,dato1,dato2,dato3)
{
if (http.readyState == 4)
{
if (http.status == 200)
{
//aqui obtengo el resultado que se produce en valida.php
var resultado = http.responseText;
//si hay algun error muestro mensaje de error
if(resultado == "-1")
document.getElementById("salida").innerHTML = men5;//sala no existe
else
{
//Si no hay error entonces se abre otra ventana a la cual hay que pasar los mismos datos validados
var url = arch +"?dato1="+dato1+"&dato2="+dato2+"&dato3="+dato 3;
ancho=screen.width;
alto=screen.height;

var cadena = "toolbar=no,location=no,status=no,menubar=no,width ="+ ancho +",height="+ alto +",resizable=no,scrollbars=yes";
var hWnd = window.open(url,"ventanaNueva",cadena);
}
}
}
}

Como les cuento esto funciona en firefox pero recien en la segunda vez que presiono el boton de proceso pero en ie no funciona y me arroja el error de "No coinciden los tipos" ... el valor de htt.readyState es siempre 1 ... porfavor, podrian darme una ayudita? ..... no ubico el error o capaz estoy haciendo algo prohibido?

Muchas gracias,
__________________
***************
Marivi
***************
  #2 (permalink)  
Antiguo 19/11/2007, 12:00
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: Problema con ajax en ie

loading.............

Cuando asignas la función que se llamará en cada ESTADO, debes ponerlo

onReadystatechange = tuFunción;

y no así : tuFunction(algo,algo,algo);

Por tu script veo que quieres enviar parámetros, entonces usa el concepto CLOSURE y VARIABLES LOCALES en javascript.

Código PHP:
http.onreadystatechange = function(){
   
procesaRespuesta(scriptPHP,dato1,dato2,dato3);

Asi debería funcionarte.


connection closed.
__________________

Maborak Technologies
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 23:49.