2

可能重复:
提交后 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 作为动态内容。

欢迎咨询,谢谢!

4

3 回答 3

10

如何使用本地存储完成:

$(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());
    });
});

小提琴

于 2012-11-01T19:20:13.423 回答
0

将所选选项元素的 id 或值放入您的 php session( $_SESSION['selected_option_id']) 中,这样该值将通过所有页面传递。然后更改生成选项元素的代码再次检查$_SESSION['selected_option_id'],如果匹配,则在选项元素中设置 selected 属性。

会话是在请求之间共享值的好方法,因为 HTTP 是无状态协议。

我更喜欢在 localStorage 和 cookie 之前使用 session,因为这些在客户端浏览器中可能不可用或启用。session 是 apache/php 的一个特性,在服务器端得到支持。

PHP 会话处理

于 2012-11-01T19:14:37.137 回答
-1

您可以使用 Cookie。但是,如果您希望它适用于不接受来自您网站的 cookie 的用户,请在 url 中附加一个井号标签。选择字段的 Onchange 您更新井号标签。页面加载时,您检查当前的井号标签并将选择设置为其值与井号标签之一匹配的选项。

于 2012-11-01T19:20:22.057 回答