将<select>选项重置为上一个值

时间:2017-04-30 16:23:21

标签: php forms validation

我创建了一个带有选择框的表单,这些表单的数据通过post发送到包含它的同一个PHP页面。通过比较帖子中的值,检查选择框是否已由用户更改其值。如果未设置,表单将重新显示,但选择框将恢复为默认值。 如何使用发布数据将框设置回用户在提交表单时如何将其保留以避免给用户带来不便? //&LT;形式&GT;等等...  &lt; h2&gt;选择您喜欢的颜色&lt; / h2&gt;             &lt; select name =“color”&gt;                 &lt; option value =“0”&gt;选择一种颜色:&lt; / option&gt;                 &lt; option value =“1”&gt; Beige&lt; / option&gt;                 &lt; option value =“2”&gt; Sand&lt; / option&gt;                 &lt; option value =“3”&gt; Tan&lt; / option&gt;             &LT; /选择&GT; //更多表单代码 表单重新提交时将检查帖子值: if(isset($ _ POST ['color'])){     $ color = $ _POST ['color'];     if($ color!= 0){        //数据全部设置,重定向     } else {         //没有设置任何值,重新显示表单     } } 有什么建议?

1 个答案:

答案 0 :(得分:0)

/<form> etc...
 <h2 >Choose your favourite colour</h2>

            <select name="colour">
                <option value="0" selected=<?php if($_POST['colour']){$state} else{ echo 'false'} ?> >Choose a colour:</option>
                <option value="1">Beige</option>
                <option value="2">Sand</option>
                <option value="3">Tan</option>
            </select>
//more form code

这里是php代码

if (isset($_POST['colour']) ) {
    $colour = $_POST['colour'];
    $state = 'false';

    if($colour != 0) {
       //data is all set, redirect
    }else {
        // no value has been set, redisplay form
        $state  = 'true';
    }
}