2009-08-26 4 views
10

Gibt es eine Möglichkeit, das ausgewählte Element in einer Dropdown-Box mit dem folgenden 'Typ' Code festzulegen?Wie lege ich das ausgewählte Element in einem Dropdown-Feld fest

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

Die Datenbank hält einen Monat .. und ich möchte auf der Bearbeitungsseite ermöglichen, so dass sie in diesem Monat wählen .. aber es mit ihrer aktuellen Einstellung vorgefüllt werden?

Antwort

45

Sie benötigen das gewählte Attribut der richtigen Option-Tag setzen:

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

Ihre PHP etwas würde wie folgt aussehen:

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

ich es in der Regel ordentlicheres finden eine Reihe von Werten zu erstellen und durchlaufen Sie das, um ein Dropdown zu erstellen.

+0

Erk sorry, nicht sehen, Ihre meisten ly identischer Kommentar vor der Veröffentlichung meiner. Ich werde deine aufwerten, aber überlasse es dem Fragesteller, einen Gewinner auszuwählen. Btw, hat dein öffnendes PHP-Tag einen Tippfehler? oder ist '

+0

Dein bekommt das tick :) Macht mehr Sinn für mich, haha! – tarnfeld

+3
13

Sie markieren das ausgewählte Element auf dem <option>-Tag, nicht das <select>-Tag.

Also sollten Sie den Code in etwa so lauten:

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

du weniger repetitiven machen können, indem sie in einem Array alle Monatsnamen setzen und ein basisches foreach über ihnen.

+0

oder, so: http://stackoverflow.com/ a/3747240/2615737 –

4

können Sie diese Methode verwenden, wenn Sie eine MySQL-Datenbank verwenden:

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

Es wird vergleichen, wenn der Benutzer in $ _GET [ 'to'] ist das gleiche wie $ row [ 'id'] in der Tabelle Wenn ja, wird $ ausgewählt. Das war für ein privates Nachrichtensystem ...

1

einfache Weise

<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

Einfach und leicht zu verstehen, beispielsweise durch ternäre Operatoren in ausgewählten Wert setzen 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

Dies ist die Lösung dass ich kam mit ...

<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 ist zu alt, aber ich muss meinen Weg auch hinzufügen :) Beca Verwenden Sie es allgemein und nützlich, insbesondere wenn Sie statische Dropdown-Werte verwenden.

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

und in Sie Drop-Down-Optionen können Sie diese Funktion wie diese verwenden und diese so viele verwenden können, wie Sie können, weil sie mit allen Ihren Auswahlboxen passt/Dropdown-Listen

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

:) I Hilfe andere hoffen, dass diese Funktion

-3

Sie können versuchen, diese nach dem select-Tag:

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

Ich würde eine Überarbeitung dieser Antwort in Erwägung ziehen. Deine Antwort berührt nicht PHP. –

Verwandte Themen