Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Rellenar los select que se encuentran dentro de un bucle for

Estas en el tema de Rellenar los select que se encuentran dentro de un bucle for en el foro de PHP en Foros del Web. Hola a todos y gracias de antemano por vuestra ayuda. Llevo poco tiempo programando con PHP y hay conceptos que no manejo del todo bien. ...
  #1 (permalink)  
Antiguo 30/10/2014, 10:42
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 0
Rellenar los select que se encuentran dentro de un bucle for

Hola a todos y gracias de antemano por vuestra ayuda. Llevo poco tiempo programando con PHP y hay conceptos que no manejo del todo bien. Tengo que hacer una aplicacion que gestione los cursos a los que pertenecera un alumno. En la pantalla principal debo seleccionar con un select el numero de alumnos que quiero introducir a una base de datos. En la siguiente pantalla debo introducir el nombre del alumno, su codigo y el curso en el que se quiere matricular. Para elegir el curso lo que he hecho a sido crear un select y dentro de el cargar el contenido de la base de datos que contiene los cursos. El problema me viene al intentar gestionar a mas de un alumno ya que solo me rellena el select del primer alumno y los demas me los deja vacios. Para que entendais mejor lo que me pasa y me podais ayudar os voy a poner el codigo de las dos paginas.

alumno.php
Código HTML:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <h1>Gestion de cursos</h1>
        <form action="gestionCurso.php" method="post">
            Numero de alumnos a controlar su curso
            <select name="nota">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
            </select>
            <button>Aceptar</button>
        </form>
    </body>
</html> 
gestionCurso.php
Código PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        
if(isset($_REQUEST['nota'])){
            
$nota=$_REQUEST['nota'];
        }
        else{
            
$nota="";
        }
        
$con=  mysqli_connect("127.0.0.1""root""root");
        
mysqli_select_db($con"prueba");
        
$consulta=  mysqli_query($con"select * from curso");
        
?>
        <h2>NOTA DE LOS ALUMNOS</h2>
        
            <form action="" name="">
                <?php
                
for($i=0;$i<$nota;$i++){ ?>
                <table>
                    <tbody>
                        <tr>
                            <td>Nombre<br>
                                <input name="NOM_ALUMNO" type="text"></td>
                            <td>COD_ALUM<br>
                                <input name="COD_ALUMNO" type="text" size="9"></td>
                        </tr>
                        <tr>
                            <td>
                                <select name="LISTA_CURSOS">
                                    <?php while($fila=  mysqli_fetch_array($consulta)){ ?>
                                    <option value="<?php echo $fila['COD_CURSO']; ?>"><?php echo $fila['COD_CURSO']; ?></option>
                                    <?php ?>
                                </select>
                                <br>
                            </td>
                            <td><br>
                            </td>
                        </tr>
                    </tbody>
                </table>
                <?php }
                
?>
            </form>
        <p><br>
        </p>
    </body>
</html>
Tenia pensado subir unas imagenes para que vieseis como me funcionaba pero no se como subir una imagen
  #2 (permalink)  
Antiguo 30/10/2014, 12:14
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

Ok,

Creo que solo necesitas meter la consulta dentro del bucle:

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <meta charset="UTF-8">
  4.         <title></title>
  5.     </head>
  6.     <body>
  7.         <?php
  8.         if(isset($_REQUEST['nota'])){
  9.             $nota=$_REQUEST['nota'];
  10.         }
  11.         else{
  12.             $nota="";
  13.         }
  14.         $con=  mysqli_connect("127.0.0.1", "root", "root");
  15.         mysqli_select_db($con, "prueba");
  16.          
  17.         ?>
  18.         <h2>NOTA DE LOS ALUMNOS</h2>
  19.          
  20.             <form action="" name="">
  21.                 <?php
  22.                 for($i=0;$i<$nota;$i++){ ?>
  23.                 <table>
  24.                     <tbody>
  25.                         <tr>
  26.                             <td>Nombre<br>
  27.                                 <input name="NOM_ALUMNO" type="text"></td>
  28.                             <td>COD_ALUM<br>
  29.                                 <input name="COD_ALUMNO" type="text" size="9"></td>
  30.                         </tr>
  31.                         <tr>
  32.                             <td>
  33.                                 <select name="LISTA_CURSOS">
  34.                                     <?php
  35.                                    $consulta=  mysqli_query($con, "select * from curso");
  36.                                    while($fila=  mysqli_fetch_array($consulta)){ ?>
  37.                                     <option value="<?php echo $fila['COD_CURSO']; ?>"><?php echo $fila['COD_CURSO']; ?></option>
  38.                                     <?php } ?>
  39.                                 </select>
  40.                                 <br>
  41.                             </td>
  42.                             <td><br>
  43.                             </td>
  44.                         </tr>
  45.                     </tbody>
  46.                 </table>
  47.                 <?php }
  48.                 ?>
  49.             </form>
  50.         <p><br>
  51.         </p>
  52.     </body>
  53. </html>

EDITADO: Ahora viendo los nombre de tus input, necesitarás manejar estos como arreglos para poder enviar y guardar correctamente a más de un alumno.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por the_web_saint; 30/10/2014 a las 12:16 Razón: Consejo
  #3 (permalink)  
Antiguo 30/10/2014, 12:29
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

Muchas gracias me ha funcionado pero no entiendo eso ultimo que has puesto
  #4 (permalink)  
Antiguo 30/10/2014, 12:35
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

En su momento quizás te des cuenta, lo que puede ocurrirte es que coloques por ejemplo 3 alumnos y solo te guarde el último de ellos. Ya que los nombres de los campos del formulario no son manejadas como arreglo.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 31/10/2014, 04:28
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

Si no lo e entendido mal tu lo que me propones es que haga lo siguiente:
<input name="NOM_ALUMNO[$i]" type="text"></td>
y si no es asi como lo deberia hacer?
  #6 (permalink)  
Antiguo 31/10/2014, 06:18
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

En realidad solo basta hacer esto:
Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <meta charset="UTF-8">
  4.         <title></title>
  5.     </head>
  6.     <body>
  7.         <?php
  8.         if(isset($_REQUEST['nota'])){
  9.             $nota=$_REQUEST['nota'];
  10.         }
  11.         else{
  12.             $nota="";
  13.         }
  14.         $con=  mysqli_connect("127.0.0.1", "root", "root");
  15.         mysqli_select_db($con, "prueba");
  16.          
  17.         ?>
  18.         <h2>NOTA DE LOS ALUMNOS</h2>
  19.          
  20.             <form action="" name="">
  21.                 <?php
  22.                 for($i=0;$i<$nota;$i++){ ?>
  23.                 <table>
  24.                     <tbody>
  25.                         <tr>
  26.                             <td>Nombre<br>
  27.                                 <input name="NOM_ALUMNO[]" type="text"></td>
  28.                             <td>COD_ALUM<br>
  29.                                 <input name="COD_ALUMNO[]" type="text" size="9"></td>
  30.                         </tr>
  31.                         <tr>
  32.                             <td>
  33.                                 <select name="LISTA_CURSOS[]">
  34.                                     <?php
  35.                                    $consulta=  mysqli_query($con, "select * from curso");
  36.                                    while($fila=  mysqli_fetch_array($consulta)){ ?>
  37.                                     <option value="<?php echo $fila['COD_CURSO']; ?>"><?php echo $fila['COD_CURSO']; ?></option>
  38.                                     <?php } ?>
  39.                                 </select>
  40.                                 <br>
  41.                             </td>
  42.                             <td><br>
  43.                             </td>
  44.                         </tr>
  45.                     </tbody>
  46.                 </table>
  47.                 <?php }
  48.                 ?>
  49.             </form>
  50.         <p><br>
  51.         </p>
  52.     </body>
  53. </html>

Puedes investigar un poco sobre el tema de como manejar los arreglos de valores pasados por formularios.

Saludos,
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 31/10/2014, 10:30
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Rellenar los select que se encuentran dentro de un bucle for

Vae muchas gracias por tu ayuda

Etiquetas: bucle, html, mysql, rellenar, select
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 22:24.