Foros del Web » Programando para Internet » PHP »

Selected en una lista desplegable desde BD

Estas en el tema de Selected en una lista desplegable desde BD en el foro de PHP en Foros del Web. Buenas, estoy empezando en la programación PHP, tengo una base de datos con dos tablas, alumnos y cursos, y estoy haciendo una página php para ...
  #1 (permalink)  
Antiguo 06/12/2011, 08:22
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Selected en una lista desplegable desde BD

Buenas, estoy empezando en la programación PHP, tengo una base de datos con dos tablas, alumnos y cursos, y estoy haciendo una página php para editar estos alumnos, creo que lo hago todo bien, excepto en la lista desplegable que contiene los cursos, que no consigo asignar el atributo selected al curso que tenía previamente.

A ésta página php le paso dos variables por url, el código del alumno (id), y el código del curso (idcurso), pero no se que es lo que hago mal..

Me podéis echar una mano? Muchas gracias!

pro_alumnos_editar.php
Código PHP:
<?php 
require_once("controlacceso.php");
?>
<html>
<head>
    <title>Editar Alumno</title>
</head>

<body>

<form action="pro_alumnos_grabar.php" method="post">

<table style="font-family:Verdana; font-size:13px" align="center" border="0">

<tr>
    <td align="center" colspan="2">Edicion Ficha del Alumno</td>
</tr>

<tr>
    <td>Codigo</td>
    <td>
    <?php
    
require_once("conexion.php");
    
    
$registros=mysql_query("select codigo, nombre, mail, codigocurso from alumnos where codigo=$_GET[id]",$cn);
        
    if(
$reg=mysql_fetch_array($registros))
    echo 
$_GET['id'];
    
?>
    </td>
</tr>

<tr>
    <td>Nombre</td> <td><input id="nombre" name="nombre" type="text" size="40" value="<?php echo "$reg[nombre]"?>" /></td>
</tr>

<tr>
    <td>Mail</td> <td><input id="mail" name="mail" type="text" size="50" value="<?php echo "$reg[mail]"?>" /></td>
</tr>

<tr>
    <td>Curso</td> 
    
    <td>
    <select name="codigocurso" id="codigocurso">
    <?php
        $registros2
=mysql_query("select codigo, nombrecur from cursos",$cn);
        
        while(
$reg2=mysql_fetch_array($registros2)){
        
        if(
$reg['codigocurso'] == $_GET['idcurso'] )
            echo 
"<option selected='selected' value='$reg2[codigo]'>$reg2[nombrecur]</option>";
        else
            echo 
"<option value='$reg2[codigo]'>$reg2[nombrecur]</option>";
        }
        
mysql_close($cn);
    
?>
    </select>
    </td>
</tr>

<tr>
    <td align="center" colspan="2"><input id="grabar" name="grabar" type="submit" value="Grabar" /><input id="cerrar" name="cerrar" type="button" value="Cerrar" onclick="window.close();" /></td>
</tr>


<?PHP 

?>
</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 06/12/2011, 09:32
Avatar de JoSe__MiGuEl__  
Fecha de Ingreso: octubre-2011
Ubicación: Colombia
Mensajes: 51
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Selected en una lista desplegable desde BD

jlmi91 mira haber si esto te puede servir; porque así es como yo eh echo una consulta a la bd mediante un desplegable:

Código PHP:
<?php
//Conexion con la base
include("conexion.php");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select codigo From cursos Order By codigo";
$result=mysql_query($sSQL);

echo
"<select  name='codigo'>";
echo
"<option value=0>Seleccione el Código del curso</option>";
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["codigo"].'</option>';}
echo
"</select>*";
?>
Ya hay esta como tu lo utilizarias.
__________________
\m/_ JoSe _\m/
  #3 (permalink)  
Antiguo 06/12/2011, 10:04
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Selected en una lista desplegable desde BD

Cita:
Iniciado por JoSe__MiGuEl__ Ver Mensaje
jlmi91 mira haber si esto te puede servir; porque así es como yo eh echo una consulta a la bd mediante un desplegable:

Código PHP:
<?php
//Conexion con la base
include("conexion.php");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select codigo From cursos Order By codigo";
$result=mysql_query($sSQL);

echo
"<select  name='codigo'>";
echo
"<option value=0>Seleccione el Código del curso</option>";
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["codigo"].'</option>';}
echo
"</select>*";
?>
Ya hay esta como tu lo utilizarias.
Ei gracias por el aporte, creo que son maneras diferentes de hacerlo, pero al fin y al cabo el resultado es lo mismo, hasta ahí todo bien, a mi lo que me gustaría es que cuando hago click sobre el botón editar, en la lista desplegable me saliese seleccionado el curso que ya tenia el alumno, es decir, mi duda está aquí:
Código PHP:
        $registros2=mysql_query("select codigo, nombrecur from cursos",$cn);
        
        while(
$reg2=mysql_fetch_array($registros2)){
        
        if(
$reg['codigocurso'] == $_GET['idcurso'] )
            echo 
"<option selected='selected' value='$reg2[codigo]'>$reg2[nombrecur]</option>";
        else
            echo 
"<option value='$reg2[codigo]'>$reg2[nombrecur]</option>";
        } 
Analizando todo el código, eso debería de funcionar, ademas $reg contiene al alumno filtrado por la id que se le ha pasado por la url, pero analizando el código html generado por PHP, obtengo el atributo selected en TODOS los option.

Aunque claro, ahora mismo me he dado cuenta escribiendo esto xD, que es normal, porque la condición siempre se cumple.. bueno amigos voy a romperme un poco mas la cabeza y a ver si doy con la solución.

Etiquetas: desplegable, html, lista, mysql, registro, selected, sql, tabla, variables
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 01:12.