如何从 <select> 标签中选择一个值

How to have a value already selected from <select> tag

我实现了以下下拉菜单:

<select style="margin-left:25px;">
     <option value="null"> </option>
     <option value="single">Single</option>
     <option value="in_a_relationship">In a relationship</option>
     <option value="engaged">Engaged</option>
     <option value="married">Married</option>
     <option value="open_rel">In an open relationship</option>
     <option value="divorced">Divorced</option>
 </select>

例如,用户已经从下拉菜单中选择了 Single。当他们返回此页面时,我希望 single 已从列表中选择。对于文本字段,我可以简单地从数据库中获取值,然后将其分配给一个变量,然后在 value 中回显它。即

$get_data2 = mysqli_query ($connect, "SELECT * FROM user_bio WHERE username = '$username'");
        $row3 = mysqli_fetch_assoc ($get_data2);
                $bio = $row3['about_me'];

然后做...

<textarea name="biotextarea" form="change_details" rows="4" cols="60" maxlength="255"><?php echo $bio; ?> </textarea>

如何为 select 标签执行此操作?

在 select 标签上设置预 selected 选项要求您在 selected 选项上放置 selected 属性。

<select style="margin-left:25px;">
<?php
   $options = array(array("null"," "),array("single","Single"),array("in_a_relationship","In a relationship"),array("engaged","Engaged"),array("married","Married"),array("open_rel","In an open relationship"),array("divorced","Divorced"));
   foreach ($option in $options){
       if ($option[0] == $row3['status']){
           $selected = 'selected ';
       }
       else{
           $selected = '';
       }
       echo '<option '.$selected.'value="'.htmlspecialchars($option[0]).'">'.htmlspecialchars($option[1]).'</option>';
   } 
?>
 </select>

Mu​​sa 的解决方案还可以,但是如果你不想改变你的 PHP 太多 你可以用 Javascript.

完成任务

与jQuery或纯Javascript

function selector(id, value){
    select = document.getElementById(id);
  for(i=0;i<select.options.length;i++){
    if(select.options[i].value == value){
        select.selectedIndex = i;
    }
  }

}
//Pure Javascript
selector("status", "engaged")

//With jQuery
jQuery('#status').val('married');

勾选这个Snippet

以下是 select HTML 中的选项 Single 的方法:

<select style="margin-left:25px;">
     <option value="null"> </option>
     <option value="single" selected>Single</option>
     <option value="in_a_relationship">In a relationship</option>
     <option value="engaged">Engaged</option>
     <option value="married">Married</option>
     <option value="open_rel">In an open relationship</option>
     <option value="divorced">Divorced</option>
 </select>

那么,如何在 PHP 中进行设置?!

好吧,您可以像这样生成 <select> 元素:

<?php
$options = [
    'null' => ' ',
    'single' => Single',
    'in_a_relationship' => 'In a relationship',
    'engaged' => 'Engaged',
    'married' => 'Married',
    'open_rel' => 'In an open relationship',
    'divorced' => 'Divorced'
];
?>
<select style="margin-left:25px;"><?php
     foreach($options as $key => $value) {
          echo '<option value="' . $key . '"';
          if ($key === $row3['status']){
              echo ' selected';
          }
          echo '>' . $value . '</option>';
     }
?></select>