如何在php中针对变量选择下拉选项

如何在php中针对变量选择下拉选项,php,html,Php,Html,我有一个如下的下拉列表 <select> <option value="Mr">Mr</option> <option value="Dr">Dr</option> <option value="Prof">Prof</option> </select> 更新2 请参见屏幕截图: 更新3 现在它工作了!添加了的名称。我更改了我的解决方案,希

我有一个如下的下拉列表

 <select>
      <option value="Mr">Mr</option>
      <option value="Dr">Dr</option>
      <option value="Prof">Prof</option>      
    </select>
更新2

请参见屏幕截图:

更新3


现在它工作了!添加了

的名称。我更改了我的解决方案,希望它适合您的解决方案

更新:

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

这将解决您的问题

试试这个代码

<select>
   <option value="Mr" <?=($selected_value=="Mr") ? "selected" : ""?>>Mr</option>
   <option value="Dr" <?=($selected_value=="Dr") ? "selected" : ""?>>Dr</option>
</select>

>博士
试试这个

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

如果您还有一个选项数组,您可以通过循环每个选项来创建选项标记。在该循环中,您可以检查
$selected\u值
是否与
$option\u值
匹配,如下所示:

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

>

要执行所需操作,必须动态构建select,如以下示例所示:

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

先生
博士
教授

根据您当前的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>

value=“Mr”>Dr
尝试如下

<select name="select_options">
  <option value="Mr">Mr</option>
  <option value="Dr">Dr</option>
  <option value="Prof">Prof</option>      
</select>

先生
博士
教授

点击提交按钮后。然后您将在
$\u POST['select\u options']

中获得价值有很多方法可以实现您所做的事情。我可以想出两种直接的方法

第一个是丑陋的: 在每个选项中插入一个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>

value=“Dr”>Dr

你弄错语法了

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

先生
博士
教授

那么你试过什么?你能再解释一下吗?虽然我建议你打开一个新问题。@Kei see updated question你能发布你整个页面的HTML吗?也许,你能告诉我们你使用的浏览器/浏览器版本吗?比我快了1个:PThanks@PeterHorvath,请检查now@NishamMahsin你是怎么做这个表格的?如果是静态的(你在写html)?@NishamMahsin嘿,很抱歉耽搁了。如果你的问题还没有解决,请让我知道,这样我可以尝试帮助你@NishamMahsin请尝试我的更新代码,我认为您的问题是,在我的示例中,您应该为您的同类命名。让我知道这是否有用!这是最简单的方法…只需添加到脚本中,而不使用选择区域。。。。
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;
}
<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>