javascript - DataTables(jQuery 的表格插件)在导航离开和返回 DataTable 时从上次中断的地方继续

标签 javascript php jquery symfony datatables

我一直在使用DataTables使站点管理员可以轻松搜索数据库数据。我收到了很多请求,要求用户在单击条目并导航回表时能够从数据表中上次中断的位置继续。我知道我可以从头开始,并可能通过主要是服务器端的解决方案将此功能引入表中,但我希望有一种简单的方法来捕获客户端上的 DataTables 数据并将其提供给我服务器端应用程序能够在导航回数据表时从中断处重新绘制数据表。我想坚持使用 DataTables 的主要原因是我动态地将它用于近 50 个不同的数据库表,而且我真的不想为所有这些表实现完全不同的解决方案。我更愿意以这样的方式利用 DataTables,以便我可以将此功能动态添加到所有 50 个页面的 Datatables 中。任何有用的指示将不胜感激。

可能需要注意的是,我在服务器端使用 PHP。 (更具体地说是 Symfony2 框架)。

最佳答案

DataTables 有一些内置的功能来处理这个问题。文档将此称为“状态保存”。

来自文档:

DataTables has the option of being able to save the state of a table (its paging position, ordering state etc) so that is can be restored when the user reloads a page, or comes back to the page after visiting a sub-page.

这是使用传递到 DataTables 方法的配置对象中的 stateSave 选项启用的,如下所示:

$(document).ready(function() {
    $('#example').dataTable( {
        stateSave: true
    } );
} );

您还可以使用 stateDuration 选项控制保存的时间长度。

请注意文档中的此警告:

The built in state saving method uses the HTML5 localStorage and sessionStorage APIs for efficient storage of the data. Please note that this means that the built in state saving option will not work with IE6/7 as these browsers do not support these APIs.

如果您需要支持那些较旧的浏览器(例如,通过使用 cookie 或服务器端解决方案),DataTables 提供了 stateSaveCallbackstateLoadCallback 选项来解决此问题。

完整的文档可以在这里找到:https://datatables.net/examples/basic_init/state_save.html

关于javascript - DataTables(jQuery 的表格插件)在导航离开和返回 DataTable 时从上次中断的地方继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31595666/

相关文章:

javascript - 如何退出超时函数的实例?

javascript - 如何为移动设备创建像 Accordion 一样工作的 WordPress 响应式菜单?

混合了文字和数组的 Javascript 数组

php - Laravel - SSL 证书错误 : unable to get local issuer certificate

jquery - 在表单提交失败时保留 JQuery CSS 设置

javascript - 使用 js 更改 url 参数,无需在单击按钮时重新加载页面

php - 只是关于代码格式

php - 导出到 Excel 或 csv

javascript - JQuery 添加列表项

jQuery - 获取与单击的元素位于同一行的表格单元格的文本值