可能的重复:
html选择选项丢失的数据
我有一个选择菜单,该菜单应在页面刷新后保留所选选项。这是一个例子:
<select id="form_frame" name="frame" onchange="getData(this);"/>
<option value="data1" selected="selected">Data 1</option>
<option value="data2">Data 2</option>
</select>
功能getData只需将信息拉到用户。
我正在为动态内容使用Smarty/PHP。
开放建议,谢谢!
如何使用本地存储:
$(function() {
if (localStorage.getItem('form_frame')) {
$("#form_frame option").eq(localStorage.getItem('form_frame')).prop('selected', true);
}
$("#form_frame").on('change', function() {
localStorage.setItem('form_frame', $('option:selected', this).index());
});
});
小提琴
将所选选项元素的ID或值放在您的PHP会话($_SESSION['selected_option_id']
)中,以此方式将此值传递到所有页面中。然后更改生成选项元素的代码再次检查$_SESSION['selected_option_id']
,如果它与之匹配,则在选项元素中设置所选属性。
会议是在请求之间共享值的好方法,因为HTTP是无状态协议。
我更喜欢在localstorage和cookie之前的会话,因为可能在客户端浏览器中不可用或启用这些会话。会话是Apache/PHP的功能,在服务器侧受支持。
PHP会话处理
您可以使用cookie。但是,如果您希望它为不接受网站cookie的用户使用它,请使用标签附加URL。您更新标签的选择字段的选择。页面的on载,您检查了一个现在的哈希标签,并将选择设置为匹配的选项。