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

Problema al ejecutar varias llamadas a AJAX

Estas en el tema de Problema al ejecutar varias llamadas a AJAX en el foro de Frameworks JS en Foros del Web. Hola a todos, tengo un problema con AJAX. Tengo creado un script que al seleccionar un pais de un select me refresca otro select con ...
  #1 (permalink)  
Antiguo 13/04/2007, 04:17
 
Fecha de Ingreso: noviembre-2002
Ubicación: españa
Mensajes: 188
Antigüedad: 22 años
Puntos: 0
Problema al ejecutar varias llamadas a AJAX

Hola a todos, tengo un problema con AJAX. Tengo creado un script que al seleccionar un pais de un select me refresca otro select con las ciudades de ese pais. El problema es que la primera vez lo hace bien pero si vuelvo a seleccionar otro pais ya no me responde nada. A que se debe esto? Hay solucion?

Un saludo y gracias de antemano
__________________
Experto en todo y nada a la vez
  #2 (permalink)  
Antiguo 13/04/2007, 08:43
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 18 años
Puntos: 0
Re: Problema al ejecutar varias llamadas a AJAX

Por que no muestras tu codigo para darnos una idea de lo que pasa..

Saludos
  #3 (permalink)  
Antiguo 13/04/2007, 09:39
 
Fecha de Ingreso: noviembre-2002
Ubicación: españa
Mensajes: 188
Antigüedad: 22 años
Puntos: 0
Re: Problema al ejecutar varias llamadas a AJAX

Aqui les dejo el codigo javascript que he creado para ver donde falla:

function nuevoAjax()
{
xmlhttp = null; //para que funcione en firefox se necesita que la variable sea una variable global

if(window.XMLHttpRequest){
//mozilla compatible & IE7
xmlhttp = new XMLHttpRequest();

} else if (window.ActiveXObject) {
//IE 6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

if(!xmlhttp) {
alert("Su navegador no soporta AJAX!");
}

return xmlhttp;

}

function updateOptions(option)
{
// Obtendo la capa donde se muestran las respuestas del servidor

var ciudad=document.getElementById("city");
// Creo el objeto AJAX
var ajax=nuevoAjax();
// Coloco el mensaje "Cargando..." en la capa del select
document.getElementById("scity").innerHTML="Cargan do...";
// Abro la conexión, envío cabeceras correspondientes al uso de POST y envío los datos con el método send del objeto AJAX
ajax.open("POST", "process.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("p="+option);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
// Respuesta recibida. Coloco el texto plano en la capa correspondiente
ciudad.innerHTML=ajax.responseText;
}
}
}



HTML


<div class="select_buscar" id="country">
<select name="" size="1" class="select_buscar" dir="ltr">
<option selected="selected">Seleccione el pais</option>
<option value="1" onClick="javascript:updateOptions(1);">España</option>
<option value="2" onClick="javascript:updateOptions(2);">Francia</option>
<option value="3" onClick="javascript:updateOptions(3);">Portugal</option>
</select>
</div>
<div class="select_buscar" id="city"><select name="selectcity" id="selectcity" size="1" class="select_buscar" dir="ltr">
<option id="scity">Seleccionar ciudad</option>
</select></div>

La idea es que al hacer click en uno de los paises, por ejemplo españa, en el segundo select de ciudades se cargan las ciudades proporcionadas por una base de datos con ajax, hasta ahi todo bien, el problema viene cuando decido pulsar otra vez en otro pais como portugal que tiene tambien otras ciudades pero ya no me hace nada, es como si el script dejase de funcionar :S
__________________
Experto en todo y nada a la vez
  #4 (permalink)  
Antiguo 13/04/2007, 14:53
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 al ejecutar varias llamadas a AJAX

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

Pues lo haces mal.

Código PHP:
<div class="select_buscar" id="country">
<
select name="" size="1" class="select_buscar" dir="ltr">
<
option selected="selected">Seleccione el pais</option>
<
option value="1" onClick="javascript:updateOptions(1);">España</option>
<
option value="2" onClick="javascript:updateOptions(2);">Francia</option>
<
option value="3" onClick="javascript:updateOptions(3);">Portugal</option>
</
select>
</
div>
<
div class="select_buscar" id="city"><select name="selectcity" id="selectcity" size="1" class="select_buscar" dir="ltr">
<
option id="scity">Seleccionar ciudad</option>
</
select></div
no pongas el evento ONCLICK en los options.
Si quieres un manipular el cambio de tu SELECT debes ponerle el evento ONCHANGE

Código PHP:
<div class="select_buscar" id="country">
<
select name="" size="1" class="select_buscar" dir="ltr" onchange="updateOptions(this.value)">
<
option selected="selected">Seleccione el pais</option>
<
option value="1">España</option>
<
option value="2">Francia</option>
<
option value="3">Portugal</option>
</
select>
</
div>
<
div class="select_buscar" id="city"><select name="selectcity" id="selectcity" size="1" class="select_buscar" dir="ltr">
<
option id="scity">Seleccionar ciudad</option>
</
select></div
Y por favor trata de poner tu código entre etiquetas PHP, CODE, QUOTE o HTML. :p


connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 16/04/2007, 05:05
 
Fecha de Ingreso: noviembre-2002
Ubicación: españa
Mensajes: 188
Antigüedad: 22 años
Puntos: 0
Re: Problema al ejecutar varias llamadas a AJAX

gracias por corregirme :) pero aun asi, sigo teniendo el problema de que solo me lo ejecuta una sola vez :S
__________________
Experto en todo y nada a la vez
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 07:35.