Foros del Web » Programando para Internet » PHP »

Valor inicial para lista desplegable

Estas en el tema de Valor inicial para lista desplegable en el foro de PHP en Foros del Web. Hola: tengo un problema, tengo una lista desplegable que se llena directamente de la base de datos y se ordena segun el orden en que ...
  #1 (permalink)  
Antiguo 05/02/2003, 11:51
 
Fecha de Ingreso: julio-2002
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Valor inicial para lista desplegable

Hola: tengo un problema, tengo una lista desplegable que se llena directamente de la base de datos y se ordena segun el orden en que se extraen los datos de la base.

El problema es que quiero que, ademas de la carga de datos (cosa que hace perfectamente) necesito darle que, por ejemplo el valor inicial que le muestre al usuario sea '3' y que el usuario parta viendo seleccionada la tercera opcion de la lista...

si alguien me puede dar una manito con esto estaria muy agradecido.....


Drenis
  #2 (permalink)  
Antiguo 05/02/2003, 12:57
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 15 años, 5 meses
Puntos: 0
imaginemos que queremos sacar todos los id y los line de una tabla, y cuando el valor de id = 3 quede mostrandolo en la lista

Código PHP:
$select "select id, line from tabla ";
$result mysql_query($select) or die('error');
echo 
"<tr><td>LISTA</td><td>*<select name=\"nombre\">";
#fijate en esl selected. lo trate de hacer la forma mas simple para que lo entiendas
if (mysql_num_rows($result) == 0){
    echo 
"<option>No Hay</option>";
    
$extra "disabled";
}else{
     while(list(
$id,$des_line) = mysql_fetch_row($result)){
             if (
$id == 3){
                echo 
"<option value=\"$id\" selected>$des_line</option>";
             }
             else {
                echo 
"<option value=\"$id\">$des_line</option>";
            }
     }
}
echo 
"</select></td></tr>"
atte bhonox
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #3 (permalink)  
Antiguo 05/02/2003, 13:37
 
Fecha de Ingreso: julio-2002
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 0
sabes que no me resulta;

lo que hace tu scrip es eliminar el registro que es igual al indice y selecciona la lista en si y no dirigida a un indice en especial

te mando el codigo que estoy usando a ver si te es mas facil así...

de antemano gracias

<select name="tip_hab">
<?
$result = mysql_query("SELECT cod_tipo_habitacion, nom_tipo_habitacion FROM tipo_de_habitacion");
while ($row=mysql_fetch_array($result))
{
echo '<option value="'.$row["cod_tipo_habitacion"].'">'.$row["nom_tipo_habitacion"].'</option>';
}
?>
</select>
  #4 (permalink)  
Antiguo 05/02/2003, 13:40
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 15 años, 5 meses
Puntos: 0
mi trozo de codigo muestra todo el contenido en una lista y deja como seleccionado la que tenga id = 3..
ahora explicame en tu codigo cual campo es el que validaras que sea igual a 3???
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #5 (permalink)  
Antiguo 05/02/2003, 13:50
 
Fecha de Ingreso: julio-2002
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 0
quiero que
cod_tipo_habitacion

sea igual a una variable $cod_th

el codigo solo muestra el llenado de la lista.....
  #6 (permalink)  
Antiguo 05/02/2003, 15:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Dentro del while() comparas el campo leido de la base de datos con el valor de la variable. En caso de que sean iguales añades el atributo selected al <option> tal como manda HTML.

Si quieres el codigo, es lo que te ha puesto bhonox.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 19:58.