我知道可以使用“ selected”为标签设置一个值,但是答案并不总是恒定的。我希望该值与数据库中的数据具有相同的值。
<?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>
";
?>
你需要使用数组构建选项。然后,当你循环选择选项时,可以与答案进行比较,如果匹配,则将其设置为“选定”。
<?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>