Как установить выбранный элемент в выпадающем списке - PullRequest
13 голосов
/ 26 августа 2009

Есть ли способ установить выбранный элемент в раскрывающемся списке, используя следующий код типа?

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

База данных содержит месяц .. и я хочу разрешить на странице редактирования, чтобы они выбирали этот месяц ... но он должен быть предварительно заполнен их текущей настройкой?

Ответы [ 10 ]

54 голосов
/ 26 августа 2009

Вам необходимо установить выбранный атрибут правильного тега опции:

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

Ваш PHP будет выглядеть примерно так:

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

Обычно мне удобнее создавать массив значений и проходить через него, чтобы создать раскрывающийся список.

15 голосов
/ 26 августа 2009

Вы отмечаете выбранный элемент в теге <option>, а не в теге <select>.

Итак, ваш код должен выглядеть примерно так:

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

Вы можете сделать это менее повторяющимся, поместив все названия месяцев в массив и используя базовые foreach над ними.

5 голосов
/ 04 января 2012

Вы можете использовать этот метод, если вы используете базу данных 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);

Будет выполнено сравнение, если пользователь в $ _GET ['to'] совпадает с $ row ['id'] в таблице, если да, будет выбран выбранный $. Это было для частной системы обмена сообщениями ...

4 голосов
/ 25 февраля 2016

Простой и понятный пример с использованием троичных операторов для установки выбранного значения в 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>
2 голосов
/ 08 октября 2017

Это слишком старый, но я также должен добавить свой путь :), потому что он универсален и полезен, особенно когда вы используете статические выпадающие значения.

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

и в ваших выпадающих опциях вы можете использовать эту функцию следующим образом, и вы можете использовать ее столько, сколько сможете, потому что она подходит для всех ваших полей выбора / выпадающих меню

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

:) Я надеюсь, что эта функция поможет другим

1 голос
/ 07 марта 2013

Простой способ

<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>
0 голосов
/ 05 февраля 2019

Проверьте это:

<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 голосов
/ 18 апреля 2018

Простое решение: Это работает для меня

<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 голосов
/ 08 октября 2017

Вы можете попробовать это после выбора тега:

<option value="yes" selected>yes</option>
<option value="no">no</option>
0 голосов
/ 30 января 2017

Это решение, которое я придумал ...

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...