繁体   English   中英

如何使用 PHP 重置使用过滤器或/和搜索字段定义的 DataTable 的状态

[英]How to reset state of DataTable defined with filters or/and search field, with PHP

处理 PHP 应用程序,在多个布局上使用 DataTables ( https://datatables.net )。

在最终用户从应用程序注销后,我能否以某种方式重置所有 DataTable 的过滤器和搜索数据? 换句话说,如果可以使用 PHP 函数清除 DataTables 库创建的所有 cookie。

主要思想是在用户从应用程序注销后将应用程序重置为其主要状态。

提前谢谢你!

文档说:( https://datatables.net/examples/basic_init/state_save.html

内置状态保存方法使用 HTML5 localStorage 和 sessionStorage API 来高效存储数据。

这意味着您无法使用 PHP 访问它。 但是,您可以将过滤器参数的存储更改为 cookie 或服务器端。

可以通过 stateSaveCallback 和 stateLoadCallback 选项使用使用 cookie 或通过 Ajax 在服务器上保存状态的替代选项。

您应该编写以下代码:
- 将过滤器参数保存到 cookie 中您可以在使用 PHP 注销时删除的内容

- 通过 AJAX 将过滤器参数保存到数据库中,您也可以在注销时使用 PHP 将其删除

示例在这里: https : //datatables.net/reference/option/stateSaveCallback

如果有人对此解决方案感兴趣:正如某些人正确指出的那样,无法从 PHP 中删除 localStorage,因为 PHP仅适用于服务器,而 localStorage 是基于客户端的。 但是,实现 OP 想要的一种方法是确保注销后显示的页面具有删除 localStorage 所需的 JS。 例如,假设在注销后,用户被重定向到comebacksoon.php 你需要的是确保在这个comebacksoon页面的 html 中,你包括:

<script>
  localStorage.removeItem(keyYouWantToDelete);
</script>

需要注意的是,如果用户在加载comebacksoon.php之前关闭窗口,localStorage 不会被删除,但这种方法在大多数情况下对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM