Foros del Web » Programando para Internet » PHP »

cambiar las opciones de una lista desplegable en funcion de la opcion elegida en otra

Estas en el tema de cambiar las opciones de una lista desplegable en funcion de la opcion elegida en otra en el foro de PHP en Foros del Web. HOla, Tengo un problema, y es que tengo en una pagina dos listas desplegables, una con origenes y otra con destinos, yo quiero que al ...
  #1 (permalink)  
Antiguo 09/04/2008, 02:48
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 17 años
Puntos: 0
cambiar las opciones de una lista desplegable en funcion de la opcion elegida en otra

HOla,

Tengo un problema, y es que tengo en una pagina dos listas desplegables, una con origenes y otra con destinos, yo quiero que al seleccionar un origen me salgan solo los posibles destinos para ese origen, y no todos. Claro está que tanto los origenes como los destinos los saco de una base de datos.
Se como hacerlo con javascript, pero sin sacar los valores de la base de datos, cuando mezclo javascript y php ya si q no me funciona nada.... y la verdad es q no se muy bien como ponerlo asi q normal q no me funcione.

Alguien puede ayudarme? por favor necesito ayuda urgente. Si me pudieran poner un codigo de ejemplo o algo similar mejor q mejor.

Por si sirve de algo, estoy usando Dreamweaver.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 09/04/2008, 03:47
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Re: cambiar las opciones de una lista desplegable en funcion de la opcion elegida en

Fijate si esto te sirve, al seleccionar un área se actualiza el combo de subáreas, en caso que no haya subáreas para el área seleccionada lo que hago es ocultar el combo de subáreas (en todo caso esto último se podría eliminar si no lo necesitas.
Creo que vas a poder adaptar este script a lo que vos necesitas.

Código HTML:
AREA:
<select id="AreaID" name="AreaID" onchange="chArea(this.value)">
<?
$C=mysql_query("SELECT id, Area FROM areas ORDER BY Area");
while ($R=mysql_fetch_array($C))
{
	echo "<option value=\"".$R["id"]."\">".$R["Area"]."</option>\n";
}
mysql_free_result($C);
?>
</select>
<br>
SUBÁREA:
<select id="SubareaID" name="SubareaID">
</select>

<script type="text/javascript">
<!--

var SubareaID=new Array();
var Subarea=new Array();
var SubareaAreaID=new Array();
<?
$cant=0;
$C=mysql_query("SELECT id, Subarea, AreaID FROM subareas ORDER BY AreaID, Subarea");
while ($R=mysql_fetch_array($C))
{
	echo "  SubareaID[$cant]=".$R["id"]."; Subarea[$cant]='".$R["Subarea"]."'; SubareaAreaID[$cant]=".$R["AreaID"].";\n";
	$cant++;
}
mysql_free_result($C);
?>

function chArea(id)
{
	var HaySubs=false;
	var a;
	var b;
	for (a=0; a<SubareaAreaID.length; a++)
	{
		if (SubareaAreaID[a]==id)
		{
			HaySubs=true;
			break;
		}
	}
	get('SubareaID').value=0;
	
	if (HaySubs)
	{
		var cant=0;
		get('SubareaID').length=SubareaAreaID.length;
		get('SubareaID').value=0;
		for (a=0; a<SubareaAreaID.length; a++)
		{
			if (SubareaAreaID[a]==id)
			{
				get('SubareaID').options[cant].value=SubareaID[a];
				get('SubareaID').options[cant].text=Subarea[a];
				get('SubareaID').options[cant].selected=false;
				cant++;
			}
		}
		get('SubareaID').length=cant;
		get('SubareaID').style.display='block';
	}
	else
	{
		get('SubareaID').length=0;
		get('SubareaID').style.display='none';
	}
}
//-->
</script> 
Para Explorer y Firefox funciona bien, otros navegadores... mmm... tengo mis dudas.
Suerte. Saludos.

Gustavo.

Última edición por Gustavo72; 09/04/2008 a las 03:53
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 13:42.