首页 文章

刷新后保留选定的选项(表单/选择)[重复]

提问于
浏览
1

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

欢迎咨询,谢谢!

3 回答

  • 0

    你可以使用Cookies . 但是,如果您希望它为不接受您网站的Cookie的用户使用,请在网址后附加一个哈希标记 . 在更改选择字段时,您将更新哈希标记 . 在页面的加载中,检查当前的哈希标记并将select设置为其值与hash-tag的值匹配的选项 .

  • -1

    如何使用本地存储:

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

    FIDDLE

  • 5

    将所选选项元素的id或值放在php会话中( $_SESSION['selected_option_id'] ),这样这个值就会传递给所有页面 . 然后更改生成选项元素的代码再次检查 $_SESSION['selected_option_id'] ,如果匹配1,则在option元素中设置selected属性 .

    由于HTTP是无状态协议,因此会话是在请求之间共享值的好方法 .

    我更喜欢localStorage和cookies之前的会话,因为那些可能在客户端浏览器中不可用或启用 . 会话是apache / php的一个功能,在服务器端受支持 .

    PHP Session Handling

相关问题