我有一个下拉列表。
<select>
<option value="Mr">Mr</option>
<option value="Dr">Dr</option>
<option value="Prof">Prof</option>
</select>
我从$selected_value
变量的数据库中获取值。基于此值,我想从上面的选项中选择一个选项为selected
。
例如:如果$selected_value
=先生,<option value="Mr" selected>Mr</option>
如果$selected_value
= Dr,<option value="Dr" selected>Dr</option>
更新
现在,当我正在检查元素时,我会变得像下面一样。但是没有选择Dr.
但是它正在w3schools中尝试编辑。
<select>
<option value="Mr">Mr</option>
<option value="Dr" selected="selected">Dr</option>
<option value="Prof">Prof</option>
</select>
更新2
见屏幕截图:
UPDATE3
现在它有效!添加了<select>
答案 0 :(得分:3)
这对您有用
试试这段代码
<select>
<option value="Mr" <?=($selected_value=="Mr") ? "selected" : ""?>>Mr</option>
<option value="Dr" <?=($selected_value=="Dr") ? "selected" : ""?>>Dr</option>
</select>
答案 1 :(得分:2)
根据您当前的HTML使用以下代码:
<select name="your_select_name">
<option <?php echo (($selected_value=="Mr")?"selected":"") ?> value="Mr">Mr</option>
<option <?php echo (($selected_value=="Dr")?"selected":"") ?> value="Mr">Dr</option>
<option <?php echo (($selected_value=="Prof")?"selected":"") ?> value="Mr">Prof</option>
</select>
如果此变量($selected_value
)的值返回&#34; Dr&#34; ,则会选择第二个选项。并且还提供您的选择标记的名称。
答案 2 :(得分:1)
我改变了我的解决方案,所以它适合你的希望。
更新:
<select name="dropdownlist">
<?
$options = array("Mr", "Dr", "Prof");
foreach($options as $option){
if($_POST['dropdownlist'] == $option){
echo '<option selected="selected">' .$option. '</option>';
}else{
echo '<option>' .$option. '</option>';
}
}
?>
</select>
答案 3 :(得分:1)
试试这个..
<option value="Mr" <?php if($selected_value == 'Mr') echo 'selected' ?>>Mr</option>
<option value="Dr" <?php if($selected_value == 'Dr') echo 'selected' ?>>Dr</option>
<option value="Prof" <?php if($selected_value == 'Prof') echo 'selected' ?>>Prof</option>
或者您可以使用jquery
<script>
$('select option[value="<?php echo $selected_value ?>"]').attr('selected','true')
</script>
答案 4 :(得分:1)
如果您还有一个选项数组,则可以通过循环遍历每个选项标记来创建选项标记。在那个循环中,您可以检查$selected_value
是否匹配$option_value
,如此:
<select>
<?php foreach($options as $option_value => $option_displayName) : ?>
<option
value="<?php echo $option_value; ?>"
<?php echo $option_value == $selected_value ? 'selected' : ''; ?>>
<?php echo $option_displayName; ?>
</option>
<?php endforeach; ?>
</select>
答案 5 :(得分:1)
要执行您想要的操作,您必须动态构建选择,如下例所示:
<?php
$selects = array(
array('name' => 'Mr', 'value' => 'Mr'),
array('name' => 'Dr', 'value' => 'Dr'),
array('name' => 'Prof', 'value' => 'Prof'),
);
$selected_option = 'Dr';
echo '<select>';
foreach($selects as $select) {
if($select['value'] == $selected_option) {
echo '<option value="'.$select['value'].'" selected>' .$select['name']. '</option>';
} else {
echo '<option value="'.$select['value'].'">' .$select['name']. '</option>';
}
}
echo '</select>';
?>
哪个输出:
<select>
<option value="Mr">Mr</option>
<option value="Dr" selected>Dr</option>
<option value="Prof">Prof</option>
</select>
答案 6 :(得分:1)
请尝试以下操作。
<select name="select_options">
<option value="Mr">Mr</option>
<option value="Dr">Dr</option>
<option value="Prof">Prof</option>
</select>
点击提交按钮后。然后,您将获得$_POST['select_options']
答案 7 :(得分:1)
有很多方法可以实现您的目标。我可以想到两种直接的方法。
第一个是丑陋的: 在每个选项中插入一个php标记并检查是否选择了值:
<select>
<option <?php if ($selected_value == 'Mr') echo 'selected'; ?> value="Mr">Mr</option>
<option <?php if ($selected_value == 'Dr') echo 'selected'; ?> value="Dr">Dr</option>
<option <?php if ($selected_value == 'Prof') echo 'selected'; ?> value="Prof">Prof</option>
</select>
否则,我会亲自写一个小帮手
function generateSelect(array $entries, $selected)
{
$ret = '<select>'
foreach ($entries as $entry) {
$ret .= '<option';
if ($entry == $selected) {
$ret .= ' selected';
}
$ret .= ' value="'.$entry.'"';
$ret .= '>'.$entry.'</option'>;
}
return $ret;
}
这只是一个例子,它的功能可以扩展。它应该工作,但我自己没有尝试过(快速写下来)
答案 8 :(得分:0)
你的语法错误
<select>
<option value="Mr">Mr</option>
<option value="Dr" selected="selected">Dr</option>
<option value="Prof">Prof</option>
</select>
这将起作用
<select>
<option value="Mr">Mr</option>
<option value="Dr" selected>Dr</option>
<option value="Prof">Prof</option>
</select>