[英]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.