如何在刷新页面后选择输入?

时间:2016-03-28 12:03:03

标签: javascript php jquery

如何在刷新页面之前显示表单输入而不丢失输入的数据?我的意思是刷新我的页面后,我想显示在表单中输入的所有值。

我有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']="";

它工作正常,但不知道如何选择刷新前选择的选项。但我不必总是选择相同的默认值。用户可以选择任何值

3 个答案:

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