Я хочу, чтобы когда люди делали выбор в моей форме, выбор, который они делали, оставался после отправки формы, или если в форме была ошибка, отправленные поля по-прежнему отображают свой выбор. Я много чего перепробовал и не могу заставить его работать. Я искал около 30 минут на Stackoverflow и не могу найти ответ на этот вопрос.
<form action="article_rating.php" method="post" class="formbox2"><table class="borderie" width="100%" align="center">
<?php
$ratingarray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'Make a Selection');
?>
<p><tr><td align="left"><label for="readable" class="label">Readability Factor- Indicate if you feel this is article is easily readable</label></td><td align="right"><select name="readable">
<?php
foreach($ratingarray as $value){
echo '<option value="'.$value .'"';
echo ' selected="selected"';
echo '>' . $value . '</option>';
}
?>
</select>
</td></tr></p>
<p><tr><td align="left"><label for="originality" class="label">Originality Factor- Indicate how original you feel this article is.</label></td><td align="right"><select name="originality">
<?php
foreach($ratingarray as $value){
echo '<option value="'.$value .'"';
echo ' selected="selected"';
echo '>' . $value . '</option>';
}
?>
</select></td></tr></table></form>
Не эхом selected="selected"
для каждого варианта. Используйте if
условие, чтобы видеть, было ли значение для каждого поля предоставлено ранее, и эхо выбирается только в том случае, если значение в текущей итерации цикла совпадает.
Пример (предполагается, что вы публикуете на той же странице):
// In your loop
if (isset($_POST['readable'] && $_POST['readable'] == $value) {
// echo selected
}
Других решений пока нет …