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

problemas con AJAX y explorer 6

Estas en el tema de problemas con AJAX y explorer 6 en el foro de Frameworks JS en Foros del Web. Hola a todos. Quiero pedirles su ayuda y es que he estado tratando de hacer funcionar un codigo que me carga bien en mozilla pero ...
  #1 (permalink)  
Antiguo 21/06/2007, 16:28
 
Fecha de Ingreso: marzo-2007
Mensajes: 19
Antigüedad: 17 años, 1 mes
Puntos: 0
problemas con AJAX y explorer 6

Hola a todos.
Quiero pedirles su ayuda y es que he estado tratando de hacer funcionar un codigo que me carga bien en mozilla pero en explorer no.
Lo que hace el codigo es que dependiendo del valor que tome un combo, se actualiza otro combo y aparece en un div una tabla. En mozilla como les digo funciona, pero en explorer el combo que debe de actualizarse no lo hace solo aparece la tabla. Pense que era porq usaba la misma funcion para crear el objeto ajax y decidi hacer dos paginas js donde estan las funciones de crear el objeto y mostrar la info, pero aun asi no funciona en el explorer
y el explorer es una desgracia que no t puede dar herramientas p ver q carajo sucede (no como el mozilla con el firebug)

He revisado en el firebug y correrlo con break point y si hace la llamada a la pagina y lleva el valor que ha tomado del combo, pero aun asi sigue sin mostrar los valores que quiero y como repito en el mozilla funciona a la perfeccion y necesito que funcione en la idiotez del explorer.

la llamada de las funciones estan en una misma pagina y desde esa llama a las otras paginas, si alguien sabe que puedo hacer o q me sugieren les estare agradecida!!!!!
  #2 (permalink)  
Antiguo 21/06/2007, 19:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 19
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problemas con AJAX y explorer 6

Cita:
var nuevoajax

function showcity(valor){
nuevoajax=crearobj();
if (nuevoajax==null) {
alert ("Your browser does not support AJAX!");
return;
}
var pag="city.asp";
pag=pag+"?c="+valor;
nuevoajax.onreadystatechange=stateChangedb;
nuevoajax.open('GET',pag,true);
nuevoajax.send(null);
}

function stateChangedb(){
if (nuevoajax.readyState==4 && nuevoajax.status==200)
{
document.getElementById("E_LOCATION_1").innerHTML= nuevoajax.responseText;
}
}

function crearobj(){
var nuevoajax=null;
try{
// Firefox, Opera 8.0+, Safari
nuevoajax=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try
{
nuevoajax=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
nuevoajax=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return nuevoajax;
}
este es el codigo que utilizo p escribir en el combo y manda a una pagina donde esta el codigo asp, es el mismo q ocupo p escribir en el div solo q cambio el nombre de las variables de la funcion que crea el objeto ajax
si alguien me puede ayudar se los agradecere...
  #3 (permalink)  
Antiguo 21/06/2007, 21:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 19
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problemas con AJAX y explorer 6

revisando el codigo, al principio me daba un error en explorer de object expected buscando en foros di con algunos tips pero de nada han servido. He separado el codigo y lo deje mas simple si alguien puede hacer que funcione les suplico que me ayuden, aqui les dejo el codigo simplificado. El primero es el html y el segundo el js

Cita:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="funciones1.js"></script>
</head>

<body>
<select name="paisorigen" id="paisorigen" onChange="mostrarciudad(this.value);">
<option selected>Select</option>
<OPTION value="bze">Belize</option>
<OPTION value="gua">Guatemala</option>
<OPTION value="mga">Managua</option>
<OPTION value="rtb">Roatan</option>
<OPTION value="sal">San Salvador</option>
<OPTION value="sap">San Pedro Sula</option>
<OPTION value="sjo">San Jose, CR</option>
<OPTION value="tgu">Tegucigalpa</option>
</select>
<SELECT name="destino" id="destino">
<OPTION value="" selected>Select City&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</OPTION>
</SELECT>

</body>
</html>
el js es el publicado anteriormente
yo se q es mucho codigo pro si alguien puede hacer q funcione, le agradecere mucho
  #4 (permalink)  
Antiguo 01/07/2007, 15:55
 
Fecha de Ingreso: diciembre-2006
Mensajes: 6
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: problemas con AJAX y explorer 6

Estamos aquí ante un típico problema de cacheo de datos. El IE en lugar de hacer una nueva petición al servidor en búsqueda de nuevos datos, se limita a cargar aquellos que están almacenados en su “memoria” provocando así que cualquier cambio en los datos de nuestra base de datos no se refleje en pantalla hasta que ese cache sea eliminado (cerrando y abriendo la ventana del navegador, entre otras alternativas).

Solución del lado del servidor
Si nuestra aplicación AJAX se conecta con un archivo PHP, ASP u otro que tengamos acceso y se nos permita modificar, la solución se reduce a una simple línea de código que colocaremos en dicho archivo antes de cualquier línea que genere salida (mediante un echo o Response.Write, por ejemplo). Esta línea de código es una cabecera que le indica al navegador que no debe utilizar su cache para mostrar los datos si no que debe, como corresponde, realizar una nueva petición y mostrar aquellos datos actualizados que obtenga como respuesta.

La cabecera en PHP:

header("Cache-Control: no-store, no-cache, must-revalidate");

La cabecera en ASP:

Response.addHeader "pragma", "no-cache"
Response.CacheControl = "Private"
Response.Expires = 0);

Espero que te sirva
Saludos
  #5 (permalink)  
Antiguo 02/07/2007, 11:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 19
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problemas con AJAX y explorer 6

Gracias Joshua, ya habia probado eso antes, crei que era el cache y coloque esas lineas de codigo en el lado del servidor. Pero no es ese es problema. Y te agradezco que te hayas tomado el tiempo en contestar y revisar mi caso.
Lo que hice fue separar el codigo de los combos dependientes y sucedia algo, siempre funcionaba en mozilla pero en explorer no, daba un error de Object Expected segun la consola de java. Y lo que pasa es que no se porque pero el explorer no reconocio la escritura directamente sobre el select, cuando recibia la respuesta de la peticion con AJAX

La peticion que hacia con AJAX si estaba bien, el manejo de la respuesta en el segundo combo era como debia de estar, pero cuando debia escribir lo que yo queria entre "<select>respuesta de AJAX</select>" no lo hacia, sinceramente no se porque y si alguien me pudiera explicar la razon, estaria mas que agradecida.

La solucion que le di a mi problema fue colocar un div y escribir todo el combo de respuesta dentro de ese div, lo cual me funciono al final.
  #6 (permalink)  
Antiguo 03/07/2007, 12:00
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: problemas con AJAX y explorer 6

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


Creo que lo haces mal.... al parecer.... intuyo que tu responseText contiene

<option>algo</option>
<option>algo</option>
<option>algo</option>

entonces le aplicas a tu SELECT

tuSelect.innerHTML = responseText;

esto NO SE DEBE HACER.

Si retornas un conjunto de OPTIONS, tienes que RECORRERLO y añadirlo como nuevo elemento de tu SELECT, firefox permite esto pero NO IE.

Ahora, como crear nuevos OPTIONS a patir de un responseText ya es otro tema, suerte.

Referencias: http://www.formatoweb.com.ar/ajax/se...pendientes.php



connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 03/07/2007, 15:13
 
Fecha de Ingreso: julio-2006
Ubicación: Santa Marta
Mensajes: 6
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problemas con AJAX y explorer 6

Hola a todos. A mi me esta pasando algo aparecido. Debo cargar unos selects dependiendo del anterior. Con eso no hay problema. El problema esta cuando quiero volver a la página luego de haber almacenado los parametros en sesion y al intentar asignarselos a los selects no lo hace. Pero esto solo sucede en ie6. En ie7 funciona perfecto, igual en firefox y en opera. Alguien me puede ayudar con esta situación. Según lo que averigue por medio de alerts, se esta ejecutando primero la comparación de los parametros de sesión con los campos de los selects, antes de que sean llenados dinámicamente.
Muchas gracias de antemano y espero que haya quedado claramente lo que dije :)
  #8 (permalink)  
Antiguo 03/07/2007, 16:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 19
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problemas con AJAX y explorer 6

Gracias maborak por tu respuesta, buscando buscando buscando, encontre la respuesta a mi pregunta y tienes razon, en IE debo hacer un nuevo opcion a partir de la respuesta de ajax. Que frustracion y vuelvo a comprobar que el explorer solo sirve para complicarnos la vida.

saludos.
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 15:31.