Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/05/2010, 05:09
Biribu
 
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.