将数组属性保留在会话中


Keep array attributes in a session

我有这个javascript函数:

    for (var i = 0; i < c.length; i++) {
    if (c[i].type == 'checkbox' && c[i].checked==true){
        booked_seats[count]=c[i].id;
        c[i].parentNode.style.backgroundColor = "#F00";
        count++;
    }
}

当点击提交按钮时调用。我希望c[]数组保留在会话中,这样当刷新页面时,更改仍然存在(表和复选框的特定单元格中的颜色更改)。我究竟该如何做到这一点?

最简单的方法是将这些参数与表单的其余部分一起发送到服务器,然后使用内联PHP将它们放回表单中。

有很多方法可以实现这个

  • HTML5支持本地存储,您可以在其中存储所有想要的内容。I.e此处

  • 您可以将值存储在cookie中,这些cookie可供php和javascript 访问

  • 您可以将更改发送到服务器(即ajax),并在页面刷新后恢复它们

我建议将所需的数据附加到表单元素中(是否隐藏),并在页面加载时检查值:

if ($_GET["x"])
$x = $_GET["x"];
if ($_GET["y"])
$x = $_GET["y"];

使用foreach可能更有效,但现在将$x放回它们所属的位置。

在cookie中存储数组信息的最简单方法是使用jQuery和cookie插件。

这是一个包含源代码和示例用法的页面-http://code.google.com/p/cookies/

此外,这里还有另一个关于Stackoverflow的问题,它回答了您的问题:如何在JavaScript cookie中存储数组?