2009-08-26 15 views
10

C'è un modo per impostare l'elemento selezionato in una casella a discesa usando il seguente codice 'tipo'?Come impostare l'elemento selezionato in una casella a discesa

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

Il database contiene un mese .. e voglio permettere alla pagina di modifica, loro di scegliere questo mese .. ma per essere pre-riempita con la loro impostazione attuale?

risposta

45

è necessario impostare l'attributo selezionato del tag opzione corretta:

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

tuo PHP sarebbe simile a questa:

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

solito mi trovo più ordinato di creare un array di valori e passa attraverso quello per creare un menu a discesa.

+0

Erk dispiace, non ho visto il tuo più commento identico prima di postare il mio. Sopprimerò il tuo, ma lascialo all'interrogante a scegliere un vincitore. A proposito, il tuo tag PHP di apertura ha un refuso? o è '

+0

Il tuo ottiene il segno di spunta :) Ha più senso per me haha! – tarnfeld

+3
13

Contrassegna l'elemento selezionato nel tag <option>, non nel tag <select>.

Così il vostro codice dovrebbe leggere qualcosa di simile:

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

si può fare questo meno ripetitivo mettendo tutti i nomi dei mesi in un array e utilizzando una base foreach su di loro.

+0

o, come questo: http://stackoverflow.com/ a/3747240/2615737 –

4

È possibile utilizzare questo metodo se si utilizza un database 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); 

Sarà confrontare se l'utente in $ _GET [ 'a'] è lo stesso di $ row [ 'id'] nella tabella , in caso affermativo, verrà creato il $ selezionato. Questo è stato per un sistema di messaggistica privata ...

1

modo semplice

<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

semplice e facile da capire esempio ricorrendo a operatori ternari per impostare il valore selezionato in 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

Questa è la soluzione che mi è venuta in mente ...

<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

È troppo vecchio ma devo aggiungere anche il mio modo :) beca usarlo è generico e utile soprattutto quando si utilizzano valori di dropdown statici.

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

e in voi le opzioni a discesa è possibile utilizzare questa funzione come questa e che è possibile utilizzare questo come molti come si può perché si adatta con tutti i tuoi selezionare le caselle/dropdowns

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

:) I spero che questo funzione di aiuto altri

-3

si può provare questo dopo tag select:

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

Vorrei prendere in considerazione la possibilità di rivedere questa risposta. La tua risposta non tocca php. –

Problemi correlati