Foros del Web » Programando para Internet » PHP »

¿Como reescribir las opciones de un select dinamicamente?

Estas en el tema de ¿Como reescribir las opciones de un select dinamicamente? en el foro de PHP en Foros del Web. Gracias programadormax, la opcion que me diste me sirvió para otras situaciones. Pasar y guardar los parametros por sesion al usar select da mejores resultados. ...
  #1 (permalink)  
Antiguo 29/04/2007, 14:35
Avatar de regiomaster  
Fecha de Ingreso: marzo-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 0
¿Como reescribir las opciones de un select dinamicamente?

Gracias programadormax, la opcion que me diste me sirvió para otras situaciones. Pasar y guardar los parametros por sesion al usar select da mejores resultados. De esta manera los select para seleccionar sexo, edad y pais se mantienen con la opcion seleccionada mientras estas en la sesion. ¡WOW!

Tengo un select donde al seleccionar el pais, se rellena dinamicamente el select de provincias/estados y al seleccionar un estado cambia dinamicante el correspondiente a las ciudades, los select se llenan correctamente. Esto se logra con un javascript.

El problema surge cuando selecciono una provincia o una ciudad y realizo la busqueda, ya que se vacian los select llenados dinamicamente, cuando deberia quedar llena con los nombres de los estados y ciudades y con la opcion elegida seleccionada.

Alguien tiene una idea de como hacerle para mantener la opcion seleccionada y todas las opciones disponibles del select como en el caso de select estaticos. He buscado informacion pero solo encuentro casos simples.

Código:
<script>
//defino una serie de varibles Array para cada país
var provincias_México=new Array("Seleccione","Aguascalientes", "Baja California", "Baja California Sur")
var provincias_Extranjero=new Array("No disponible.")

//función que cambia las provincias del select de provincias en función del país que se haya escogido en el select de país.
function cambia_provincia(){
	//tomo el valor del select del pais elegido
	var country
	country = document.AdminForm2.country[document.AdminForm2.country.selectedIndex].value
	//miro a ver si el pais está definido
	if (country != 0) {
		//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
		//selecciono el array de provincia adecuado
		mis_provincias=eval("provincias_" + country)
		//calculo el numero de provincias
		num_provincias = mis_provincias.length
		//marco el número de provincias en el select
		document.AdminForm2.state.length = num_provincias
		//para cada provincia del array, la introduzco en el select
		for(i=0;i<num_provincias;i++){
		   document.AdminForm2.state.options[i].value=mis_provincias[i]
		   document.AdminForm2.state.options[i].text=mis_provincias[i]
		}	
	}else{
		//si no había provincia seleccionada, elimino las provincias del select
		document.AdminForm2.state.length = 1
		//coloco un guión en la única opción que he dejado
		document.AdminForm2.state.options[0].value = "Seleccione"
	    document.AdminForm2.state.options[0].text = "Seleccione"
		 
	}
	//marco como seleccionada la opción primera de provincia
	document.AdminForm2.state.options[0].selected = true
	
}


var citys_1=new Array("Seleccione","Aguascalientes", "Rincón de Romos" )
var citys_2=new Array("Seleccione","Mexicali", "Tijuana","Ensenada", "Tecate","Rosarito")

//función que cambia las ciudades del select.
function cambia_city(){
	//tomo el valor del select de la estado elegido.
	var state
	state = document.AdminForm2.state[document.AdminForm2.state.selectedIndex].value
	//miro a ver si el pais está definido
	if (state != 0) {
		//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
		//selecciono el array de provincia adecuado
		mis_citys=eval("citys_" + document.AdminForm2.state.selectedIndex)
		//calculo el numero de provincias
		num_citys = mis_citys.length
		//marco el número de provincias en el select
		document.AdminForm2.city.length = num_citys
		//para cada provincia del array, la introduzco en el select
		for(i=0;i<num_citys;i++){
		   document.AdminForm2.city.options[i].value=mis_citys[i]
		   document.AdminForm2.city.options[i].text=mis_citys[i]
		}	
	}else{
		//si no había provincia seleccionada, elimino las provincias del select
		document.AdminForm2.city.length = 1
		//coloco un guión en la única opción que he dejado
		document.AdminForm2.city.options[0].value = "Seleccione"
	    document.AdminForm2.city.options[0].text = "Seleccione"
	}
	//marco como seleccionada la opción primera de provincia
	document.AdminForm2.city.options[0].selected = true
}

</script>



<select name="country" onChange="cambia_provincia()" size="1">
<option value="0">Seleccione
<option value="México" <?php if ($_SESSION['buscaFiltros']['country'] == México) { echo 'Selected'; } ?> >México
<option value="Extranjero" <?php if ($_SESSION['buscaFiltros']['country'] == Extranjero) { echo 'Selected'; } ?> >Extrajero
</select>

<select name="state" onChange="cambia_city()" size="1">
<option value="0" >Seleccione
</select>

<select name="city"  size="1">
<option value="0">Seleccione
</select>

Última edición por regiomaster; 29/04/2007 a las 14:52 Razón: Mejorar la vista
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:13.