如何将值设置为 <select> 标记 [注意该值可能并不总是恒定的]
how to set value to <select> tag [NOTE that the value may not always constant]
我知道“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>
";
?>
您需要使用数组构建您的选项。然后,当你循环选项时,你可以与答案进行比较,如果匹配,则设置'selected'。
<?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>
我知道“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>
";
?>
您需要使用数组构建您的选项。然后,当你循环选项时,你可以与答案进行比较,如果匹配,则设置'selected'。
<?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>