Manejo de un Combo Box

Jorge Rubiano
15 de Diciembre del 2005
Hola deseo saber como hacer, que al seleccionar una opción de un combo Box, en otro Combo se cargue otras opciones que están en la base de datos, lo he visto varias veces, por ejemplo cuando se hace un registro, pero no sé como hacerlo, espero una pronta respuesta a este interrogante, gracias.

my2kbsd
15 de Diciembre del 2005
Aqui hay ejemplo de lo que deseas.

<html>
<head>
<script language="javascript">
// Primer combo
data_1 = new Option("1", "$");
data_2 = new Option("2", "$$");

// Segundo combo
data_1_1 = new Option("Mexico City", "-");
data_1_2 = new Option("Xcaret", "-");
data_2_1 = new Option("Barcelona", "--");
data_2_2 = new Option("Madrid", "--");
data_2_3 = new Option("Alicante", "--");
data_2_4 = new Option("Sevilla", "--");
data_2_5 = new Option("Otra mas", "--");

//otros parametros
displaywhenempty="-vacio-"
valuewhenempty=-1

displaywhennotempty="-seleccionar-"
valuewhennotempty=0

function change(currentbox)
{
var numb = currentbox.id.split("_");
var currentbox = numb[1];
var i=parseInt(currentbox)+1;
// I empty all combo boxes following the current one
// Si esta vacios los combos que siguen al actual
var _t=eval("typeof(document.getElementById('combo_"+i+"'))!='undefined'");
while (_t && document.getElementById("combo_"+i)!=null)
{
var son = document.getElementById("combo_"+i);
// I empty all options except the first (it isn't allowed)
// Si estan vacias todas las opciones excepto la primera(No carga nada)
for (m=son.options.length-1;m>0;m--)
son.options[m]=null;
// I reset the first option
// Depura la primera opcion
son.options[0]=new Option(displaywhenempty,valuewhenempty);
i=i+1;
}

var stringa='data';
i=0;
_t=eval("typeof(document.getElementById('combo_"+i+"'))!='undefined'");
while (_t && document.getElementById("combo_"+i)!=null)
{
eval("stringa=stringa+'_'+document.getElementById("combo_"+i+"").selectedIndex");
if (i==currentbox)
break;
i=i+1;
}

var following=parseInt(currentbox)+1;
_t=eval("typeof(document.getElementById('combo_"+following+"'))!='undefined'");
if (_t && document.getElementById("combo_"+following)!=null)
{
son=document.getElementById("combo_"+following);
stringa=stringa+"_";
i=0;
while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0))
{
if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
if (eval("typeof("+stringa+"1)=='undefined'"))
eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)");
else
eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)");
else
eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
i++;
}

i=1;
combostatus='';
cstatus=stringa.split("_");
while (cstatus[i]!=null)
{
combostatus=combostatus+cstatus[i];
i=i+1;
}
return combostatus;
}
}
</script>
</head>
<body>

<form>

<select name="combo0" id="combo_0" onChange="change(this);" style="width:200px;">
<option value="value1">-seleccionar-</option>
<option value="value2">Mexico</option>
<option value="value3">Spain</option>
</select>

<br /><br />

<select name="combo1" id="combo_1" onChange="change(this)"
style="width:200px;">
<option value="value1"></option>
</select>

</form>
</body>
</html>

Saludos!!.