如何在刷新页面之前显示表单输入而不丢失输入的数据?我的意思是刷新我的页面后,我想显示在表单中输入的所有值。
我有2个输入一个是选择选项,一个是文本。
<input type="text" name="worked_month" value="<?php echo $_SESSION['worked_month']; ?>" />
<select name="sex">
<option value="">Select Sex</option>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
我正在使用以下PHP代码在刷新页面之前显示文本
isset($_POST['worked_month'])?$_SESSION['worked_month'] = $_POST['worked_month']:$_SESSION['worked_month']="";
它工作正常,但不知道如何选择刷新前选择的选项。但我不必总是选择相同的默认值。用户可以选择任何值
答案 0 :(得分:4)
<强>解释即可。对于每个选项,检查post变量是否与值匹配,然后使用 selected 属性选择匹配的选项。
<select name="sex">
<option value="">Select Sex</option>
<option <?php echo isset($_POST['sex']) && $_POST['sex']=='male'? 'selected="selected"' = '' ?> value="male">Male</option>
<option <?php echo isset($_POST['sex']) && $_POST['sex']=='female'? 'selected="selected"' = '' ?> value="female">Female</option>
</select>
答案 1 :(得分:0)
要选择选项,您必须使用PHP动态变量。Check this reference
<?php
$sex = $_SESSION['sex'];
${$sex.'_checked'} = "selected";
?>
<select name="sex">
<option value="">Select Sex</option><option value="male" <?php echo $male_checked; ?> >Male</option><option value="female" <?php echo $female_checked; ?>>Female</option></select>
动态变量:自动将所选值转换为值为“已选中”的变量。
答案 2 :(得分:0)
我刚刚制作了类似于在Local Storage中保存值然后检索它们的内容:
//Saving the input values at local storage
var temp = [];
$('.keep-values').each(function(){
temp.push({
id:$(this).attr('id'),
value:$(this).val().trim(),
checked:$(this).is(':checked')
});
});
localStorage['valuesCache'] = JSON.stringify(temp);
然后我检索值并填充字段:
//Retrieving the values from local Storage and populating the inputs
var tmp = JSON.parse(localStorage['valuesCache']);
for(i in tmp) {
$('#'+tmp[i].id).val(tmp[i].value);
if(tmp[i].checked){
$('#'+tmp[i].id).attr('checked','');
}
}
我认为这是您最终解决方案的良好开端,请详细了解Local Storage