当没有正确填写所有字段并提交表单时,我一直在使用选择元素来保护用户输入。
<form action="" method="post">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="submit" value="Submit">
</form>
使用input元素,我可以使用这样一个简单的函数:
function input_value($x){
if(isset($_POST[$x])) {
echo $_POST[$x];
}else{
echo '';
}
}
并像这样打电话:
<input type="text" name="fname" value="<?php input_value('fname');?>">
并保留值。但是使用select元素,不是。
所以如果可能的话,我可以使用自定义函数简单地保存用户输入的任何帮助都非常感激。
答案 0 :(得分:1)
这不起作用,因为您不能只为选择输入设置值。您需要将"selected"
属性添加到之前选中的<option>
。
答案 1 :(得分:1)
select元素没有value
属性来设置默认的选定选项。相反,option元素具有selected
属性。如果将它包含在选项元素中,则会显示“嘿,我已被选中”。 ;)
我建议您使用echo
替换input_value()
函数中的return
语句:
function input_value($x){
if (isset($_POST[$x])) {
return $_POST[$x];
}
else {
return '';
}
}
这使您可以执行以下操作:
<select name="cars">
<option value="volvo" <?php echo (input_value('cars') == 'volvo') ? 'selected="selected"' : ''; ?>>Volvo</option>
<option value="saab" <?php echo (input_value('cars') == 'saab') ? 'selected="selected"' : ''; ?>>Saab</option>
<option value="mercedes" <?php echo (input_value('cars') == 'mercedes') ? 'selected="selected"' : ''; ?>>Mercedes</option>
<option value="audi" <?php echo (input_value('cars') == 'audi') ? 'selected="selected"' : ''; ?>>Audi</option>
</select>
不要忘记在{普通'文本字段中echo
函数的结果:
<input type="text" name="fname" value="<?php echo input_value('fname');?>">
答案 2 :(得分:1)
在选择框中尝试此操作
<option value="volvo" <?php echo (input_value('cars') == 'volvo') ? 'selected="selected"' : ''; ?> >Volvo</option>
编辑:
将input_value($x)
功能修改为
function input_value($x){
if (isset($_POST[$x])) {
return $_POST[$x];
} else {
return '';
}
}
答案 3 :(得分:0)
您可以使用jquery-cookie
来阅读,编写和删除Cookie。
你可以这样做:
创建会话cookie:
$.cookie('userInput', 'selectValue');
阅读Cookie:
$.cookie('userInput'); // => "selectValue"
使用它,设置selected
的{{1}}属性。
option
函数:您需要以这种方式使用代码:
$_POST
答案 4 :(得分:0)
请试试这个
function input_value($x){
if(isset($_POST[$x])) {
return $_POST[$x];
}else{
return null;
}
}
你可以像这样打电话
<input type="text" name="fname" value="<?php echo input_value('fname');?>">