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
PHP show drop down selected based on value
提问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.
您需要selected在HTML.
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>';
?>

