0

我想保持选中的框在页面刷新时保持选中状态。

实际上我的页面不只是刷新,我的意思是我有分页,如果我点击下一个按钮,网址会改变index.php?page=2

下面的代码可以在刷新页面后保持复选框被选中,但是当我单击下一页时失败,并且 url 更改为如上。

那么我如何保持选中这些框?我试过把$_GET['page']复选框放在上面,但它不起作用。

<form id="form" method="post" action="">
            <input type="checkbox" name="s" class="checkbox" <?=(isset($_POST['s'], $_GET['page'])?' checked':'')?>/> Small<br>
</form>

<script type="text/javascript">  
    $(function(){
     $('.checkbox').on('change',function(){
        $('#form').submit();
        });
    });
</script>

这是php创建页面ID的部分。我php在上面的表格下面有这段代码:

if(isset($_GET['page']))
        {
            $page = $_GET['page'];
        }
        else
        {
            $page = 1;
        }


        /*
         * Set a few of the basic options for the class, replacing the URL with your own of course
         */
        $options = array(
            'results_per_page'              => 2,
            'url'                           => 'index.php?page=*VAR*',
            'db_handle'                     => $dbh
        );
4

1 回答 1

1

对于现代浏览器,您可以localStorage像这样使用

$(function(){
    var value = localStorage.input === 'true' ? true: false; // 1
    $('input').prop('checked', value || false);
});

$('input').on('change', function() {
    localStorage.input = $(this).is(':checked');
});

演示:http: //jsfiddle.net/CC2hC/1

更改输入时,您将值存储在 localStorage 中,当页面再次加载时,您检查它是否存在并将值或默认值应用于false

对于较旧的浏览器,您可能必须使用 cookie 或数据库。

您必须检查注释行上的值,// 1因为 prop 接受布尔值,而 localStorage 值将是string

于 2013-08-11T02:57:12.693 回答