PHP 显示根据值选择的下拉列表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17207557/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 12:29:28  来源:igfitidea点击:

PHP show drop down selected based on value

phpselectdrop-down-menu

提问by Mahender Singh

I want to show a drop down selected for some value which is coming from database.

我想显示为来自数据库的某些值选择的下拉列表。

    <select name="plans">
       <option>MAP</option>
       <option>CP</option>
       <option>CPA</option>
       <option>CPF</option>
    </select>

Reading a value from database in PHP/Mysql, lets say "CPA", how do I show this option selected?

从 PHP/Mysql 中的数据库读取一个值,比如说“CPA”,我如何显示这个选项被选中?

回答by Prabhuram

You need to use the selectedattribute in HTML.

您需要selectedHTML.

If for example the value you got from the database is assigned to a variable say $val,

例如,如果您从数据库中获得的值被分配给一个变量,比如说$val

Then you can do it as follows :

然后你可以这样做:

<select name="plans">
       <option <?php echo ($val == 'MAP')?"selected":"" ?> >MAP</option>
       <option <?php echo ($val == 'CP')?"selected":"" ?> >CP</option>
       <option <?php echo ($val == 'CPA')?"selected":"" ?> >CPA</option>
       <option <?php echo ($val == 'CPF')?"selected":"" ?> >CPF</option>
 </select>

回答by Joshua

You search for

你搜索

<option selected>CPA</option>

I recommend you to read through some HTML beginner guides.

我建议您通读一些 HTML 初学者指南。

回答by Sun Love

$row->will contain the name of plans after query execution 

<select name="plans">
       <option value="MAP" <?php if($row['plans']=="MAP") echo selected;?>>MAP</option>
       <option value="CP" <?php if($row['plans']=="CP") echo selected;?>>CP</option>
       <option value="CPA">CPA</option>
       <option value="CPF">CPF</option>
    </select>

回答by Szidor

Put selectedin for the option you want to be selected.

selected放入要选择的选项。

Like:

喜欢:

<select name="plans">
   <option>MAP</option>
   <option>CP</option>
   <option selected>CPA</option>
   <option>CPF</option>
</select>

When you build the above list, for each option you check whether it is the one in the database. And when it is, you add selected.

当您构建上面的列表时,对于每个选项,您检查它是否是数据库中的一个。当它是时,您添加selected

回答by Amar Banerjee

Try this as an example.

试试这个作为例子。

//$val = Value from database;

<select name="plans">
       <option <?php if(isset($val) && $val=="1") {?> selected="selected"<?php } ?> value="1" >MAP</option>
       <option <?php if(isset($val) && $val=="2") {?> selected="selected"<?php } ?> value="2" >CP</option>
       <option <?php if(isset($val) && $val=="3") {?> selected="selected"<?php } ?> value="3" >CPA</option>

 </select>

回答by Gautam3164

Try like this

像这样尝试

<select name="plans">
   <option <?php echo ($value == "MAP")?"selected":"" ?> >MAP</option>
   <option <?php echo ($value == "CP")?"selected":"" ?> >CP</option>
   <option <?php echo ($value == "CPA")?"selected":"" ?> >CPA</option>
   <option <?php echo ($value == "CPF")?"selected":"" ?> >CPF</option>
</select>

回答by Francesco Casula

You need to use the selectedattribute in the <option>HTML tag.

您需要selected<option>HTML 标记中使用该属性。

Full code:

完整代码:

<?php

    $dbValue = 'CPA';

    $options = array
    (
        'MAP' => 'MAP',
        'CP' => 'CP',
        'CPA' => 'CPA',
        'CPF' => 'CPF'
    );

    echo '<select name="plans">';

    foreach ($options as $value => $option)
    {
        $selected = $value == $dbValue ? 'selected="selected"' : '';
        echo "<option {$selected} value=\"{$value}\">{$option}</option>";
    }

    echo '</select>';

?>