5

bStateSave 选项可用于将 DataTable 的状态保存在 cookie 中。

我想在注销时清除此 cookie。

目前,我从浏览器中检查了 cookie 的名称,并在注销时使用 PHP setcookie() 更改了它的到期日期,并用硬编码名称。它可以工作,但有点难看,因为我不知道如何从 API 中检索 cookie 名称。

有没有合适的方法来做到这一点?

谢谢

4

3 回答 3

6

我不知道你是否已经得到答案,但这是我使用的。

有一个用于初始化 DataTables 的属性,称为:iCookieDuration。您应该做的是设置以秒为单位的“cookie持续时间”

那么你有:

     $('.datatable').dataTable({           
        "iCookieDuration": 60*60*24,// 1 day (in seconds)
     });

然后您设置一个您认为最佳的时间。希望能帮到你!!

于 2013-04-09T23:58:25.960 回答
1

DataTables 中的状态保存是通过将 JSON 字符串保存到 cookie 来完成的,允许它尽可能保持浏览器兼容性,同时将状态存储在客户端。有时,能够修改由表保存的参数会很有用。

如果您想在注销时清除数据表状态,那么我建议您简单地清除存储。

Storage 接口的removeItem()方法,当传递一个键名时,将从存储中删除该键。

function populateStorage() {
  localStorage.setItem('bgcolor', 'red');
  localStorage.setItem('font', 'Helvetica');
  localStorage.setItem('image', 'myCat.png');

  localStorage.removeItem('image');
}

或者

只需在退出操作时用 javascript 编写即可。

echo '<script type="text/javascript">localStorage.clear();</script>';

IE

<script type="text/javascript">localStorage.clear();</script>
于 2017-02-13T06:43:26.540 回答
0

我唯一能想到的是:

fnCookieCallback来自http://datatables.net/ref

您可以将 cookie 设置为现在的过期时间并保存。我不知道这是否有帮助,但希望你能找到答案:)

于 2012-07-25T15:00:13.750 回答