2009-08-26 19 views
10

¿Hay alguna manera de establecer el elemento seleccionado en un cuadro desplegable usando el siguiente código 'tipo'?¿Cómo configuro el elemento seleccionado en un cuadro desplegable?

<select selected="<?php print($row[month]); ?>"><option value="Janurary">January</option><option value="February">February</option><option value="March">March</option><option value="April">April</option></select> 

La base de datos contiene un mes .. y quiero permitir que en la página de edición, que les permite elegir este mes .. pero para ser precargada con su configuración actual?

Respuesta

45

Es necesario configurar el atributo seleccionado de la etiqueta de opción correcta:

<option value="January" selected="selected">January</option> 

Tu PHP sería algo como esto:

<option value="January"<?=$row['month'] == 'January' ? ' selected="selected"' : '';?>>January</option> 

Por lo general encontramos que más ordenado para crear una matriz de valores y recorra eso para crear un menú desplegable.

+0

Erk Lo sentimos, no vieron su mayor parte un comentario idéntico antes de publicar el mío. Voy a votar mejor que el tuyo, pero dejo que el que pregunta haga un ganador. Por cierto, ¿su etiqueta PHP de apertura tiene un error tipográfico? o es '

+0

Tuya recibe el tic :) Tiene más sentido para mí jaja! – tarnfeld

+3
13

Marque el elemento seleccionado en la etiqueta <option>, no la etiqueta <select>.

Así que el código debe leer algo como esto:

<select> 
    <option value="January"<?php if ($row[month] == 'January') echo ' selected="selected"'; ?>>January</option> 
    <option value="February"<?php if ($row[month] == 'February') echo ' selected="selected"'; ?>>February</option> 
    ... 
    ... 
    <option value="December"<?php if ($row[month] == 'December') echo ' selected="selected"'; ?>>December</option> 
</select> 

Usted puede hacer esto menos repetitivo, poniendo todos los nombres de los meses en una matriz y utilizando un foreach básica sobre ellos.

+0

o, como este: http://stackoverflow.com/ a/3747240/2615737 –

4

Puede utilizar este método si utiliza una base de datos MySQL:

include('sql_connect.php'); 
$result = mysql_query("SELECT * FROM users WHERE `id`!='".$user_id."'"); 
while ($row = mysql_fetch_array($result)) 
{ 
    if ($_GET['to'] == $row['id']) 
    { 
     $selected = 'selected="selected"'; 
    } 
    else 
    { 
    $selected = ''; 
    } 
    echo('<option value="'.$row['id'].' '.$selected.'">'.$row['username'].' ('.$row['fname'].' '.substr($row['lname'],0,1).'.)</option>'); 
} 
mysql_close($con); 

comparará si el usuario en $ _GET [ 'a'] es el mismo que $ fila [ 'id'] en la tabla Si es así, se crearán los $ seleccionados. Esto era para un sistema de mensajería privada ...

1

manera simple

<select class ="dropdownstyle" name="category" selected="<?php print($messageeditdetails[0]['category_id']); ?>"> 

<option value=""><?php echo "Select"; ?></option> 

<?php foreach ($dropdowndetails as $dropdowndetails) { ?> 
    <option <?php if($messageeditdetails[0]['category_id'] == $dropdowndetails['id']) { ?> selected="<?php echo $dropdowndetails['id']; ?>" <?php } ?> value="<?php echo $dropdowndetails['id']; ?>"><?php echo $dropdowndetails['category_name']; ?></option> 
<?php } ?> 
</select> 
3

simple y fácil de entender ejemplo recurriendo a operadores ternarios para fijar el valor seleccionado en php

<?php $plan = array('1' => 'Green','2'=>'Red'); ?> 
<select class="form-control" title="Choose Plan"> 
<?php foreach ($plan as $id=> $value) { ?> 
    <option value="<?php echo $id;?>" <?php echo ($id== '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> 
<?php } ?> 
</select> 
0

Ésta es la solución que se me ocurrió ...

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <select name="select_month"> 
     <?php 
      if (isset($_POST['select_month'])) { 
       if($_POST["select_month"] == "January"){ 
        echo '<option value="January" selected="selected">January</option><option value="February">February</option>'; 
       } 
       elseif($_POST["select_month"] == "February"){ 
        echo '<option value="January">January</option><option value="February" selected="selected">February</option>'; 
       } 
      } 
      else{ 
       echo '<option value="January">January</option><option value="February">February</option>'; 
      } 
     ?> 
    </select> 
    <input name="submit_button" type="submit" value="Search Month"> 
</form> 
0

Es muy viejo, pero también tengo que añadir mi camino :) beca usarlo es genérico y útil, especialmente cuando se utilizan valores desplegables estáticos.

function selectdCheck($value1,$value2) 
    { 
    if ($value1 == $value2) 
    { 
     echo 'selected="selected"'; 
    } else 
    { 
     echo ''; 
    } 
    return; 
    } 

y en ti desplegable de opciones que puede utilizar esta función como esta y puede utilizar esto como todas las que puedas porque encaja con todas sus cajas de selección/menús desplegables

<option <?php selectdCheck($row[month],january); ?> value="january">january</option> 

:) I esperan que esta función de ayuda a otros

-3

puede probar esto después seleccione la etiqueta:

<option value="yes" selected>yes</option> 
<option value="no">no</option> 
+0

Consideraría revisar esta respuesta. Tu respuesta no toca php. –

Cuestiones relacionadas