Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/04/2008, 03:47
Avatar de Gustavo72
Gustavo72
 
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años, 1 mes
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