jquery - 使用 ajax 时使用带有 tablesorter 的外部过滤器

标签 jquery ajax filtering server-side tablesorter

在使用ajax时,是否有一种方法可以使用tablesorter来使用表外部的下拉过滤器,该过滤器基于与表中的列无关的条件进行过滤?

例如,如果表是帐户列表,我希望能够过滤过期帐户,即使这不是表中的列之一。表中的每一列也将有自己的标准表排序过滤器。

由于我使用的是 ajax 和服务器端过滤,所以即使列过滤器也只是用于将 $_REQUEST 发送到 ajax url,而不过滤表中显示的内容。因此,我希望能够发送这样的 $_REQUEST ,而不必将 filter_formatter 与特定列关联。

我意识到我可以通过添加虚拟列、使用 filter_formatter 并通过类似于 this example 中所示的示例的更改函数绑定(bind)外部下拉列表来做到这一点,但我希望有一种更简单的方法。 谢谢

最佳答案

尝试使用customAjaxUrl选项。在该回调代码中,您可以获取当前选择的外部过滤器并将其作为字符串附加到发送到您的服务器。像这样的事情:

// modify the url after all processing has been applied
customAjaxUrl: function(table, url) {
    // get current selection & add it to the url
    return url += '&filter=' + $('.external-filter').val();
}
<小时/>

要回答评论中的问题,您可以尝试绑定(bind)到外部过滤器的更改事件,然后将该过滤器值保存到表数据中(如果您不想使用作用域/全局变量)。尝试这样的事情:

$('.external-filter').on('change', function(){
    $('table')
        .data('filter_value', $(this).val() )
        .trigger('update');
});

然后在 customAjaxUrl 函数中执行以下操作:

// modify the url after all processing has been applied
customAjaxUrl: function(table, url) {
    // get current selection & add it to the url
    return url += '&filter=' + $(table).data('filter_value');
}

关于jquery - 使用 ajax 时使用带有 tablesorter 的外部过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18820265/

相关文章:

jquery - 如何格式化 Ben Alman 的 jQuery Debounce

javascript - 使用带有 JQUERY 的复选框添加/删除多行

php - 使用 php 和 PDO 将数组值插入单个 ID 到 mysql 数据库中

javascript - 如何根据每次迭代更改for循环中的图像

html - jquery live() 函数和 AJAX 加载内容的问题

clojure - 如何过滤递增向量中递减的元素?

c# - 如何在 MVC 中的 Ajax 发布后刷新我的局部 View ?

jquery - 如何在 jQuery 中为弹出框添加淡入淡出效果?

c++ - 为什么理想带通滤波器不能按预期工作?

javascript - 根据用户选择过滤 ng-repeat