No entendiste lo que yo trate de explicarte:
El submit solo lo utilizas en el boton Enviar.
Los combos dependientes son llenados con la funcion RellenarCombo de JavaScript creada dinamicamente con ASP.
La funcion se dispara en el evento OnChange del Combo Padre.
Cada opcion que pueda contener el combo dependiente ya esta cargado en la pagina del usuario, y se cambiara dinamicamente con JavaScript.
Para que entiendas mas facil aca te muestro el codigo HTML que genero con la pagina asp que te puse en el link:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ejemplo Combos Anidados/Dependientes</title>
<script language = "JavaScript">
function RellenarCombo(ComboPadre, ComboDependiente, IDSelected) {
IDsSubcategorias = new Array();
IDsSubcategorias = ['7','8','9','10','11','12','13','14'];
NombresSubcategorias = new Array();
NombresSubcategorias = ['AMD','Intel','Nvidia','ATI','HP','Lexmark','Canon','Toshiba'];
AsociacionSubcategorias = new Array();
AsociacionSubcategorias = ['7','7','20','20','1','1','1','17'];
var IDItemSeleccionado = ComboPadre.options[ComboPadre.selectedIndex].value;
ComboDependiente.length = 0;
for (var i in IDsSubcategorias) {
if (AsociacionSubcategorias[i] == IDItemSeleccionado) {
ComboDependiente.options[ComboDependiente.length] = new Option(NombresSubcategorias[i], IDsSubcategorias[i]);
if (IDsSubcategorias[i] == IDSelected) {
ComboDependiente.options[ComboDependiente.length - 1].defaultSelected = true;
ComboDependiente.options[ComboDependiente.length - 1].selected = true;
}
}
}
}
</script>
</head>
<body onLoad="RellenarCombo(document.forms['EjemploCombos'].categoria, document.forms['EjemploCombos'].subcategoria);">
<form id="EjemploCombos" name="EjemploCombos" method="post" target="_self" accept-charset="UTF-8">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="97%" height="35"><label for="categoria">Categoria</label>
<select name="categoria" id="categoria" style="width:180px" onChange="RellenarCombo(document.forms['EjemploCombos'].categoria, document.forms['EjemploCombos'].subcategoria);" accept-charset="UTF-8">
<option value="1">Cartuchos y Toners</option>
<option value="2">Discos Ríg y Remov</option>
<option value="3">Grab/Lect de CD y DVD</option>
<option value="4">Memorias</option>
<option value="5">Pen Drives</option>
<option value="6">Placas de Sonido</option>
<option value="7">Procesadores</option>
<option value="8">Scanners</option>
<option value="9">Software y Programas</option>
<option value="10">Alimentación</option>
<option value="11">CDs y DVDs Vírg</option>
<option value="12">Discos Rígidos</option>
<option value="13">Gabinetes y Accesorios</option>
<option value="14">Libros y Manuales</option>
<option value="15">Modems</option>
<option value="16">Motherboards</option>
<option value="17">Notebooks</option>
<option value="18">Papeles y Resmas</option>
<option value="19">Perif y Accesorios</option>
<option value="20">Placas de Video y Editora</option>
<option value="21">Impresoras</option>
</select></td>
</tr>
<tr>
<td width="97%" height="35"><label for="subcategoria">Subcategoria</label>
<select name="subcategoria" id="subcategoria" style="width:180px" accept-charset="UTF-8">
</select></td>
</tr>
</table>
</form>
</body>
</html>
Lo que esta en rojo son las opciones de la subcategoria ya cargadas en un array para que el JavaScript llene el combo dependiente.
Lo que esta en azul es del combo padre, que es generado por ASP y su contenido no depende de otro combo, sino de la base de datos.
Lo que esta en verde es la forma de llamar a la funcion: RellenarCombo(ComboPadre, ComboDependiente, IDSelected) la ultima opcion, IDSelected, es opcional y lo que indica es un elemento del combo (mediante el ID) que quiero que aparezca seleccionado por default.
Facilmente se puede adaptar este codigo para mas de dos combos, solo tienes que analizarlo un poquito.
Cualquier duda preguntas!
Saludos!