【问题标题】:Keep value for SELECT input after validation (Form - POST Method )验证后保留 SELECT 输入的值(表单 - POST 方法)
【发布时间】:2014-02-09 01:48:01
【问题描述】:
我试图在通过 php 验证后保留我的选择输入的值,但我无法让它工作。
这适用于文本输入:
<input type="text" name="answer" id="answer"
value="<?php if(isset($_POST['answer'])){ echo $_POST['answer'];}else{ echo '';} ?>">
但是如何使这个输入工作?
<select name="question" value="<?php ?>" >
<option value="one">Num 1 ?</option>
<option value="two">Num 2 ?</option>
<option value="three"> Num 3 ?</option>
</select>
【问题讨论】:
标签:
php
forms
validation
post
【解决方案1】:
你需要使用selected属性:
<select name="question">
<option value="one"<?php if(isset($_POST["question"]) && $_POST["question"] == "one") print(" selected")?>>Num 1 ?</option>
<option value="two"<?php if(isset($_POST["question"]) && $_POST["question"] == "two") print(" selected")?>>Num 2 ?</option>
<option value="three"<?php if(isset($_POST["question"]) && $_POST["question"] == "three") print(" selected")?>> Num 3 ?</option>
</select>
【解决方案2】:
对于 Select 你需要这样做
<select name="question" value="<?php ?>" >
<option value="one" <?php if(isset($_POST["question"]) && $_POST["question"]=="one"){ echo 'selected';} ?> >Num 1 ?</option>
<option value="two">Num 2 ?</option>
<option value="three"> Num 3 ?</option>
</select>
但我建议用 JQuery 来做这件事,因为这个 IF 语句你将不得不为每个值编写,这会更加简化