【问题标题】:Keep array attributes in a session在会话中保留数组属性
【发布时间】:2013-02-14 02:15:53
【问题描述】:

我有这个 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[] 数组保留在会话中,因此当刷新页面时,更改仍然存在(表格特定单元格和复选框中的颜色更改)。我究竟如何才能做到这一点?

【问题讨论】:

  • 如果您只关心将数据保存在客户端,您可以使用 cookie 或本地存储。如果您需要服务器端的数据,则需要通过请求直接或通过 ajax 将其发送到那里。

标签: php javascript arrays session


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    有很多方法可以实现这一目标

    • HTML5 支持本地存储,您可以在其中存储您想要的所有内容。即here

    • 您可以将值存储在 php 和 javascript 可访问的 cookie 中

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

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

        另外,Stackoverflow 上的另一个问题可以回答您的问题:How to store an array in a JavaScript cookie?

        【讨论】:

          猜你喜欢
          • 2021-04-02
          • 1970-01-01
          • 2018-10-27
          • 2013-04-21
          • 2011-09-16
          • 1970-01-01
          • 1970-01-01
          • 2011-12-25
          • 1970-01-01
          相关资源
          最近更新 更多