Foros del Web » Programando para Internet » PHP »

Listas dependientes!

Estas en el tema de Listas dependientes! en el foro de PHP en Foros del Web. Hola, buenas tardes! me gustaría que alguien que entienda sobre el tema me hechara una ojeda a éste código. No he trabajado nunca con variables ...
  #1 (permalink)  
Antiguo 10/12/2009, 13:09
 
Fecha de Ingreso: diciembre-2009
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Listas dependientes!

Hola, buenas tardes!

me gustaría que alguien que entienda sobre el tema me hechara una ojeda a éste código. No he trabajado nunca con variables dependientes y sé que está mal, pero mejor esto que nada.

Código PHP:
<html>
<head>
<title>pagina1.php</title>
</head>

<body>
<form method="post" action="desplegables3">

    <table width="70%" border="0" align="center">
    <?php
// Me conecto a la base de datos
mysql_connect("localhost""root""6783");
mysql_select_db("bbdd_institut");

$paisant=$curs;

print (
"
   <input type=\"hidden\" name=\"paisant\" value=\"$paisant\">

    <tr>
       <td><div align=\"left\"><strong>Curs:</strong></div></td>
       <td><select name=\"curs\" onchange=\"submit();\">
       "
);

if (!isset(
$curs)){
    print (
"<option selected>Seleccioni el curs</option>");
    
$curs="0";
}

$sqlc="select * from cursos order by id ASC";
$res=mysql_query($sqlc);

while(
$fila=mysql_fetch_array($res)){
print(
"<option value=\"$fila[curs]\"");
if (
$fila[curs] == $curs) {
print (
"selected");
}
print(
">$fila[curs]</option>\n");
}
print(
"</select></td></tr>");

if (
$curs!="0"){
print(
"


<tr>

    

<td><div align=\"left\"><strong>modalitat:</strong></div></td>
<td><select name=\"modalitat\">
"
);
}


$sqlz "Select descripcio From modalitat_mod where curs_id = '".$curs."' ";
$rest=mysql_query($sqlz);

while(
$files=mysql_fetch_array($rest)){
print(
"<option value=\"$files[modalitat]\"");
if (
$files[modalitat] == $modalitat) {
print (
"selected");
}
print(
">$files[modalitat]</option>\n");
}
print(
"</select></td></tr>");

if (
$modalitat!="0"){
print(
"

<tr>

    

<td><div align=\"left\"><strong>Assignatura:</strong></div></td>
<td><select name=\"assignatura\">
"
);
$sqlv "Select descripcio From assignatura where curs_id = '".$curs."' ";
$resassi=mysql_query($sqlv);

while(
$filaassi=mysql_fetch_array($resassi)){
print(
"<option value=\"$filaassi[id]\">$filaassi[descripcio]</option>");
}
print(
"
    </select>
    </td>
       </tr>
"
);
}
      
?>
    </table>

</form>

Mirad y decirme donde me falla, por favor.

La idea sería que cuando yo elijo "curs" (curso, para entendernos), me salieran las diferentes "modalitats" (modalidades) de ese curso y cuando tubiera las dos anteriores, que me salieran las "assignatures" (asignaturas) que le corresponden.

Gracias de antemano!!!!
  #2 (permalink)  
Antiguo 10/12/2009, 14:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Listas dependientes!

Asi, a vista rapida, parece que no tienes activada la opcion register globals (buena practica) por lo que te falta obtener desde $_POST las variables cuando sea necesario:

Código php:
Ver original
  1. $curs = $_POST['curs'];
  2.  
  3. // Esa linea podria darte un error si el formulario aun no ha sido enviado
  4. // Entonces se puede hacer mediante asignacion ternaria
  5. $curs = (isset($_POST['curs'])) ? $_POST['curs'] : 0;
  6.  
  7. // Despues en tu select cambiar la forma en que analizas la variable
  8. if ($curs == 0){
  9.     print ("<option value=\"0\" selected=\"selected\">Seleccioni el curs</option>");
  10. } else {
  11.     print ("<option value=\"0\">Seleccioni el curs</option>");
  12. }

Lo mismo tendras que hacer para las otras dos listas.
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:46.