我正在尝试创建一个selected
先前输出的值。
(用户填写表单,提交,返回表单)并且我希望所选值是用户之前使用的值。
vraagNummer
和answer
在 url 参数中给出,列表中可用项目的下拉菜单是在 for 循环中创建的。
现在我陷入了那个部分。如果选项选择值是在 for 循环中创建的,如何创建它?
通常我会输入option value = $vraagNummer selected> <?php echo $vraagNummer ?></option
但在这种情况下这是行不通的。我想?
有人知道如何解决这个问题吗?
与 A/B/C/D 相同。如何输入answer
的选定值更改为之前选择的值,同时仍保留其他值作为选项。
谨致问候,
if(!empty($_GET['vraagnummer'])){
$vraagNummer = $_GET['vraagnummer'];
if(!empty($_GET['answer'])){
$answer = $_GET['answer'];
}
}
echo $vraagNummer;
echo $answer;
?>
<form id="start" method="post" action="index.php?test=true">
<select name="question">
<?php
for($i= 1; $i < $nRows+1 ; $i++){
?><option value="<?php echo $i ?>">Question <?php echo $i?></option>
<?php
}
?>
</select>
<select name="result">
<option value="A">Answer A</option>
<option value="B">Answer B</option>
<option value="C">Answer C</option>
<option value="D">Answer D</option>
<input type="submit" id="submit" value="Submit" />
</form>
最佳答案
您只需使用三元 if 来测试循环中当前 $i
值的 $_GET['question']
<form id="start" method="post" action="index.php?test=true">
<select name="question">
<?php
for($i= 1; $i < $nRows+1 ; $i++){
$sel = (isset($_GET['question']) && $_GET['question'] == $i) ? 'selected="selected"' : '';
echo '<option ' . $sel . ' value="' . $i .">Question ' . $i . '</option>';
}
?>
</select>
Warning:
Also be careful with the use of
empty()
when the variables can contain a zero as zero is considered as empty by theempty()
function
实际上我会像这样做你的其他下拉列表
<select name="result">
foreach (range('A', 'D') as $char) {
$sel = (isset($_GET['result']) && $char == $_GET['result']) ? 'selected="selected"' : '';
echo "<option $sel value='$char'>Answer $char</option>";
}
</select>
关于php - 为循环选择的选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36711956/