Я пытаюсь создать 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>
Вы просто тестируете $_GET['question']
против течения $i
значение в цикле с использованием троичного, если
<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>
Предупреждение:
Также будьте осторожны с использованием
empty()
когда переменные могут содержать ноль, поскольку ноль считается пустымempty()
функция
На самом деле я бы сделал ваш другой выпадающий, как это
<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>
Других решений пока нет …