05/05/2010, 05:09
|
| | Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses Puntos: 0 | |
Respuesta: Seleccionar opciones de un desplegable Bueno al final he optado por cambiarlo. Tengo esto que teoricamente tendria que funcionar pero que veo que no:
combo2.php: Código PHP:
<script type="text/javascript"> var peticion = false; var testPasado = false; try { peticion = new XMLHttpRequest(); } catch (trymicrosoft) { try { peticion = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { peticion = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { peticion = false; } } } if (!peticion) alert("ERROR AL INICIALIZAR!"); function cargarCombo (url, comboAnterior, element_id) { //Obtenemos el contenido del div //donde se cargaran los resultados var element = document.getElementById(element_id); //Obtenemos el valor seleccionado del combo anterior var valordepende = document.getElementById(comboAnterior) var x = valordepende.value //construimos la url definitiva //pasando como parametro el valor seleccionado var fragment_url = url+'?Id='+x; element.innerHTML = '<img src="Imagenes/loading.gif" />'; //abrimos la url peticion.open("GET", fragment_url); peticion.onreadystatechange = function() { if (peticion.readyState == 4) { //escribimos la respuesta element.innerHTML = peticion.responseText; } } peticion.send(null); } </script> <p><label for="carrera">Carrera:</label> <select name="Carrera" onchange="javascript:cargarCombo('curso.php', 'Carrera', 'Div_Curso')" id="Curso"> <? $servidor = 'localhost'; $usuario = 'root'; $contrasena = ''; $datos = 'dbprueba'; mysql_connect($servidor,$usuario,$contrasena); @mysql_select_db($datos) or die( "Es imposible conectar a la base de datos"); $query = "SELECT * FROM carrera"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $Id = mysql_result($result,$i,"id"); $Carrera = mysql_result($result,$i,"nombre"); ?> <option value=<? echo $Id; ?>> <? echo $Carrera ?> </option> <? $i++; } ?> </select> </p> <p> <div id="Div_curso"> <label for="curso">Curso:</label> <select name="Curso" id="Curso" class="select"></select> </div> </p> curso.php: Código PHP: <? $IdCarrera = $_REQUEST['id']; ?> <label for="curso">Curso:</label> <select name="Curso" id="Curso" class="select"> <? $servidor = 'localhost'; $usuario = 'root'; $contrasena = ''; $datos = 'dbprueba'; mysql_connect($servidor,$usuario,$contrasena); @mysql_select_db($datos) or die( "No se puede coenctar con la base de datos"); $query = "SELECT * FROM curso WHERE id_carrera=$IdCarrera"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $IdCurso = mysql_result($result,$i,"id"); $Curso = mysql_result($result,$i,"nombre"); ?> <option value=<? echo $IdCurso; ?>> <? echo htmlentities($Curso) ?> </option> <? $i++; } ?> </select> Y las tablas son:
Código:
create table carrera(
id int(2) primary key,
nombre char(10));
insert into carrera values(1, "Carrera1");
insert into carrera values(2, "Carrera2");
insert into carrera values(3, "Carrera3");
create table curso(
id int(2) primary key,
nombre char(10),
grupo int(2),
id_carrera int(2),
foreign key (id_carrera) references carrera(id));
insert into curso values(1, "primero", 3, 1);
insert into curso values(2, "segundo", 4, 1);
insert into curso values(3, "tercero", 2, 1);
insert into curso values(4, "primero", 5, 2);
insert into curso values(5, "segundo", 3, 2);
insert into curso values(6, "tercero", 8, 2);
insert into curso values(7, "primero", 9, 3);
insert into curso values(8, "segundo", 8, 3);
insert into curso values(9, "tercero", 7, 3);
Pero no consigo que muestre nada ni en el primer desplegable. No se, aparentemente el codigo esta bien y no me da errores ni nada, solo muestra los dos desplegables y nada mas. |