使foreach选择菜单形式粘

时间:2014-12-17 17:50:55

标签: php foreach sticky

我希望这样,当人们在我的表单中进行选择时,他们所做的选择会在提交表单后保留,或者如果表单中有错误,则提交的字段仍会显示他们的选择。我已经尝试了很多东西并且无法使其发挥作用。我在Stackoverflow上查找了大约30分钟,但无法找到答案。

<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>

1 个答案:

答案 0 :(得分:1)

不要为每个选项回复selected="selected"。使用if条件查看先前是否提供了每个字段的值,并且只有当循环的当前迭代中的值匹配时才选择echo。

示例(假设您要发布到同一页面):

// In your loop
if (isset($_POST['readable'] && $_POST['readable'] == $value) {
  // echo selected
}