【问题标题】:How to have a value already selected from <select> tag如何从 <select> 标记中选择一个值
【发布时间】:2016-03-19 10:41:25
【问题描述】:

我实现了以下下拉菜单:

<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 标签执行此操作?

【问题讨论】:

标签: php html html-select


【解决方案1】:

这是在 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 中设置呢?!

好吧,你可以像这样生成&lt;select&gt; 元素:

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

【讨论】:

    【解决方案2】:

    在选择标签上设置预选选项需要您在选定选项上放置选定属性。

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

    【讨论】:

      【解决方案3】:

      Musa 的解决方案是可以的,但是如果你不想过多的改变你的 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-18
        • 2016-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多