it-swarm.com.de

Wie lege ich das ausgewählte Element in einem Dropdown-Feld fest?

Gibt es eine Möglichkeit, den ausgewählten Artikel in einem Dropdown-Feld mit dem folgenden 'Typ'-Code festzulegen?

<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 zulassen, dass sie diesen Monat auswählen .. aber sie soll mit ihrer aktuellen Einstellung gefüllt sein?

13
tarnfeld

Sie müssen das ausgewählte Attribut des richtigen Option-Tags festlegen:

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

Ihr PHP würde ungefähr so ​​aussehen:

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

Normalerweise finde ich es ordentlicher, ein Array von Werten zu erstellen und durchzugehen, um ein Dropdown-Menü zu erstellen.

54
Greg

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

Ihr Code sollte also 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>

Sie können dies weniger wiederholend machen, indem Sie alle Monatsnamen in einem Array platzieren und eine einfache foreach verwenden.

15
James Wheare

Sie können 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 verglichen, ob der Benutzer in $ _GET ['to'] mit $ row ['id'] in der Tabelle identisch ist. Wenn ja, wird das ausgewählte $ erstellt. Dies war für ein privates Nachrichtensystem ...

5

Ein einfaches und leicht verständliches Beispiel, indem Sie ternäre Operatoren verwenden, um den ausgewählten Wert in PHP festzulegen

<?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>
3
Muhammad Fahad

Es ist zu alt, aber ich muss auch meinen Weg hinzufügen :), weil es generisch und nützlich ist, insbesondere wenn Sie statische Dropdown-Werte verwenden. 

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

in Ihren Dropdown-Optionen können Sie diese Funktion auf diese Weise verwenden, und Sie können diese so viele wie möglich verwenden, da sie zu all Ihren Auswahlboxen/Dropdown-Listen passt

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

:) Ich hoffe diese Funktion hilft anderen

2
Zaheer Ahmad

Einfacher Weg

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

Eine einfache Lösung: Es funktioniert für mich

<div class="form-group">
    <label for="mcategory">Select Category</label>
    <select class="form-control" id="mcategory" name="mcategory" required>
        <option value="">Please select category</option>
        <?php foreach ($result_cat as $result): ?>
        <option value="<?php echo $result['name'];?>"<?php 
           if($result['name']==$mcategory){
               echo 'selected';
           } ?>><?php echo $result['name']; ?></option>
                                        }
        <?php endforeach; ?>
    </select>
</div>
0
Sani Kamal

Überprüfen Sie dies:

<select class="form-control" id="department" name="department" type="text">
    <option value="medical-furniture" @if($list->department == "medical-furniture") selected @endif>Medical furniture</option>
    <option value="medical-table" @if($list->department == "medical-table") selected @endif>Medical table</option>
    <option value="service" @if($list->department == "service") selected @endif>Service</option>
</select>
0
Adrian

Dies ist die Lösung, die ich mir ausgedacht habe ...

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