首页 > 解决方案 > 如何将值设置为tag [注意该值可能并不总是恒定的] 我知道“selected”可用于为标记设置一个值,但答案并不总是恒定的。我希望该值与我在数据库中的数据具有相同的值。<?php $answer = "C"; // 从数据库中获取这只是示例 echo" <label for='answer'> Answer :</label> <select name='answer' id='answer' value ='$answer'> <opti

问题描述

标签: phphtmldomselectdrop-down-menu

解决方案


您需要使用数组构建您的选项。然后,当您循环选项时,您可以与答案进行比较,如果匹配,则设置“已选择”。

<?php
    $answer = "C"; // get from database this is just example
    
    //need to build option in array, so that can make the comparison
    $options = [
        'A'=> 'A',
        'B'=> 'B',
        'C'=> 'C',
        'D'=> 'D'
    ];
    
    //build option html
    $html_options = '';
    foreach($options as $value => $label){
        $selected = ($value == $answer) ? 'selected' : '';
        $html_options .= "<option value='$value' $selected>$label</option>";
    }
    
    echo"
    <label for='answer'> Answer :</label>
    <select name='answer' id='answer'>$html_options</select> 
    ";
 ?>

如果你不想使用 php 来设置值,那么也可以使用 javascript 来设置

<?php
    $answer = "C"; // get from database this is just example
    
    echo"
    <label for='answer'> Answer :</label>
    <select name='answer' id='answer' value ='$answer'>
        <option value='A'> A </option>
        <option value='B'> B </option>
        <option value='C'> C </option>
        <option value='D'> D </option>
    </select> 
    ";
 ?>



 <script
  src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
  integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs="
  crossorigin="anonymous"></script>

  <script>
    var ANSWER = '<?=$answer?>';
    $(function(){
      $('#answer').val(ANSWER)
    })
  </script>

推荐阅读