2009-08-26 6 views
10

Est-il possible de définir l'élément sélectionné dans une liste déroulante en utilisant le code 'type' suivant?Comment définir l'élément sélectionné dans une liste déroulante

<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 données contient un mois .. et je veux permettre à la page d'édition, les choisir ce mois-ci .. mais pour être pré-rempli avec leur réglage actuel?

Répondre

45

Vous devez définir l'attribut sélectionné de la balise option correcte:

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

Votre PHP ressemblerait à quelque chose comme ceci:

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

Je trouve généralement il plus propre à créer un tableau de valeurs et boucle à travers cela pour créer une liste déroulante.

+0

Erk désolé, ne pas voir votre plus Commentaire identique avant de poster le mien. Je vais upvote le vôtre, mais laissez le questionneur de choisir un gagnant. Btw, est-ce que votre balise PHP d'ouverture a une faute de frappe? ou est '

+0

Vôtre obtient la tique :) Donne plus de sens à moi haha! – tarnfeld

+3
13

Vous marquez l'élément sélectionné sur l'étiquette <option>, pas l'étiquette <select>.

Donc, votre code devrait lire quelque chose comme ceci:

<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> 

Vous pouvez en faire moins répétitif en mettant tous les noms de mois dans un tableau et en utilisant un foreach de base sur eux.

+0

ou, comme ceci: http://stackoverflow.com/ a/3747240/2615737 –

4

Vous pouvez utiliser cette méthode si vous utilisez une base de données 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); 

Il comparera si l'utilisateur $ _GET [ « à »] est le même que $ row [ « id »] dans le tableau , si oui, le $ sélectionné sera créé. Cela a été pour un système de messagerie privée ...

1

façon 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 et facile à comprendre par exemple en utilisant des opérateurs ternaires pour définir la valeur sélectionnée 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

C'est la solution que je suis venu avec ...

<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

C'est trop vieux mais je dois aussi ajouter mon chemin :) beca utilisez-le est générique et utile surtout lorsque vous utilisez des valeurs déroulantes statiques.

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

et vous les options déroulantes vous pouvez utiliser cette fonction comme celui-ci et vous pouvez l'utiliser autant que vous le pouvez parce que cela correspond à toutes vos boîtes de sélection/dropdowns

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

:) I espérons que cette fonction d'aider les autres

-3

Vous pouvez essayer cette balise select après:

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

Je considérerais de réviser cette réponse. Votre réponse ne touche pas php. –

Questions connexes