Foros del Web » Programando para Internet » PHP »

duda con <select>

Estas en el tema de duda con <select> en el foro de PHP en Foros del Web. Hola en la bd tengo una tabla con los nombres de las materias y el profesor que la da, me gustaria que en un select ...
  #1 (permalink)  
Antiguo 28/11/2011, 22:24
 
Fecha de Ingreso: noviembre-2011
Mensajes: 27
Antigüedad: 13 años
Puntos: 0
Pregunta duda con <select>

Hola

en la bd tengo una tabla con los nombres de las materias y el profesor que la da, me gustaria que en un select al seleccionar la materia, en el select de abajo me saliera de valor inicial el profesor que la da, pero tambien me mostrara los demas profesores para que pueda escoger si desea cambiarlo

gracias
  #2 (permalink)  
Antiguo 29/11/2011, 00:51
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 16 años
Puntos: 8
Respuesta: duda con <select>

Hola:

Creo que este tema debiera haberse presentado en el foro de MySQL o de Javascript. Que sean los moderadores quienes lo decidan.

Hemos de suponer que las tablas están adecuadamente relacionadas de forma que haya:
  1. Una tabla de profesores
  2. Una tabla de materias
  3. Una tabla puente que relacione profesores con materias o viceversa, según sean las necesidades de tu base de datos
Lo único que tienes que hacer es consultar la tabla de materias y mostrar los resultados en un select. Al hacer una selección mostrará los profesores relacionados con dicha materia.

Te recomiendo el siguiente script con el que puedes conseguir el resultado que persigues:

http://www.dynamicdrive.com/dynamici...ects/index.htm

Espero que te haya servido de ayuda.

Un saludo.
__________________
A. Uttranadhie
  #3 (permalink)  
Antiguo 29/11/2011, 18:51
 
Fecha de Ingreso: noviembre-2011
Mensajes: 27
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con <select>

ya yo en la tabla de materia tengo el nombre de la materia y el profesor asignado a esa materia,
hago la consulta de esa tabla y me muestra las materias, pero en el segundo select no me muestra el nombre del profesor que la da
  #4 (permalink)  
Antiguo 29/11/2011, 23:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 51
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: duda con <select>

deja el codigo amigo.
  #5 (permalink)  
Antiguo 30/11/2011, 00:37
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 16 años
Puntos: 8
Respuesta: duda con <select>

Hola:

Como bien dice kowa, como no proporciones el código mal se va a ver.

De cualquier forma, a la hora de armar el select tienes que marcar el profesor que imparte la asignatura como selected.

Esto normalmente se hace recorriendo una matriz (p.e., usando foreach) que contenga los datos obtenidos de la consulta a la tabla puente, cuando el dato a evualuar del foreach coincida con uno de la matriz lo marcas. Un ejemplo muy sencillo:

Código PHP:
foreach ($array_materias_profesores as $index => $value)
{
   if(
$value["materia_id"] == $row_consulta["materia_profesor_materia_id"]) // Suponiendo que los datos a usar sean de una consulta ...
   
{
      
$select_marcado 'selected';
   }
   else
   {
      
$select_marcado '';
   }

Con los datos obtenidos (a otra matriz, por ejemplo) armas el select y ya está.

El resto es Javascript.

Un saludo.
__________________
A. Uttranadhie
  #6 (permalink)  
Antiguo 30/11/2011, 11:10
 
Fecha de Ingreso: noviembre-2011
Mensajes: 27
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con <select>

este es el codigo

Código PHP:
<?php
require("verificar_sesion.php");
require (
"conexion.php");
$grado=$_REQUEST["grado"];
$id=$_REQUEST["id"];

$consul_docente="SELECT * FROM docente";
$consul_materias="SELECT * FROM materias WHERE id_materia=$id";
$query=mysql_query($consul_docente,$con);
$query2=mysql_query($consul_materias,$con);
if(
mysql_num_rows($query)==)
echo 
"Inserte Docentes";
if(
mysql_num_rows($query2)==)
echo 
"Inserte Materias";
$fila=mysql_fetch_array($query2);
$fila2=mysql_fetch_array($query);
?>
<!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>Modificar Materias</title>
</head>
<body>
<h1 align="center">Modificar Materias
</h1>
<p align="right"><a href="menu.php">Regresar al Menu</a> - <a href="materia.php">Atras</a> - <a href="salir.php">Salir</a></p>
<p align="center"><strong>Modificar Materias del grado:</strong> <?php echo $grado?> </p>
<form id="form1" name="form1" method="post" action="modificar_datos_materia.php?id_m=<?php echo $id;?>">
  <table width="90%" border="0" align="center">

    <tr>
      <td width="46%"><div align="right"><strong>Nombre:</strong></div></td>
      <td width="54%"><input type="text" name="nom_materia" id="nom_materia" value="<?php echo $fila["nom_materia"];?>" /></td>
    </tr>
    <tr>
      <td><div align="right"><strong>Docente:</strong></div></td>
      <td>
      <select name="docente" id="docente">
        <option >Seleccione Docente</option>
<?php
$consul_docente
="SELECT * FROM docente";
$query=mysql_query($consul_docente,$con);
 while (
$fila=mysql_fetch_array($query)){
echo 
"<option value='" .$fila['cedula'] ."'>" .$fila['nombre'] . " "$fila['apellido'] ." </option>";
}
?>
      </select>

      </td>
    </tr>
    <tr>
      <td><div align="right">Grado:</div></td>
      <td><select name="grado" id="grado">
        <option>Seleccione Grado</option>
              <?php
              $con_grado
="SELECT * FROM grado";
              
$query_grado=mysql_query($con_grado,$con);
              while (
$fila3=mysql_fetch_array($query_grado)){
        echo 
"<option value='" .$fila3["nom_grado"] ."'>" .$fila3['nom_grado'] . "</option>";
              }
      
mysql_close($con);
      
?>
        
      </select></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="button" id="button" value="Enviar" /></td>
    </tr>
  </table>

</form>
<p align="center">&nbsp;</p>
</body>
</html>
  #7 (permalink)  
Antiguo 01/12/2011, 02:28
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 16 años
Puntos: 8
Respuesta: duda con <select>

Hola, de nuevo:

Sigo reiterando que este tema me parece más apropiado para el foro de MySQL o de Javascript.

No es por desanimarte, pero un simple vistazo a las consultas que realizas no veo una relación existente entre las materias y los docentes.

Como te expliqué anteriormente precisas de una tabla puente que enlace las materias con los docentes de forma que la consulta a dicha tabla te permita ver qué materias hay y quiénes imparten cada una de ellas.

Dicha consulta la llevarías al select armándolo del modo descrito y pudiendo aplicar el script de Dynamic Drive que puse.

Adicionalmente, y es algo que se me pasó, debieras incluir otra tabla puente que relacione alumnos con materias_docentes (tabla puente de materias y docentes). Esa sería la tabla final de asignaturas de cada alumno.

No esperes que te construyamos el select ni el script. Creo que las pautas son suficientes.

Mi recomendación --y supongo que la que te daría cualquiera-- es que, antes de empezar a hacer cosas con tu ordenador, te sientes tranquilamente, te tomes un café y, en una gran hoja de papel, dibujes las entidades de tu base de datos, las páginas PHP que vas a necesitar, así como los scripts PHP y Javascript; ... y hagas las correcciones necesarias.

Ánimo que, aunque parezca mentira, se consigue.

Un saludo.
__________________
A. Uttranadhie
  #8 (permalink)  
Antiguo 01/12/2011, 10:47
 
Fecha de Ingreso: noviembre-2011
Mensajes: 27
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con <select>

ok, gracias por tu recomendacion la tendre en cuenta

saludo y gracias por todo

Etiquetas: tabla
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 12:54.