Jquery 如何在tablesorter中配置服务器端筛选?
我将jQuery插件与filter小部件一起使用,我想将实际的过滤工作卸载到服务器上。我看到小部件有一个Jquery 如何在tablesorter中配置服务器端筛选?,jquery,ajax,filtering,server-side,tablesorter,Jquery,Ajax,Filtering,Server Side,Tablesorter,我将jQuery插件与filter小部件一起使用,我想将实际的过滤工作卸载到服务器上。我看到小部件有一个filter\u serversideFiltering选项,但我找不到任何关于如何设置它的文档或示例 我假设我至少需要提供一个用于发送AJAX请求的URL和一个用于处理响应的回调,但filter小部件文档似乎没有解释在何处或如何执行此操作 (注意:这里我没有使用寻呼机插件,只是使用过滤器小部件。如果服务器端的fitering依赖于寻呼机的AJAX设置,这也没有文档记录。)所有的过滤器\u服务
filter\u serversideFiltering
选项,但我找不到任何关于如何设置它的文档或示例
我假设我至少需要提供一个用于发送AJAX请求的URL和一个用于处理响应的回调,但filter小部件文档似乎没有解释在何处或如何执行此操作
(注意:这里我没有使用寻呼机插件,只是使用过滤器小部件。如果服务器端的fitering依赖于寻呼机的AJAX设置,这也没有文档记录。)所有的
过滤器\u服务器端过滤
选项都允许与寻呼机小部件/插件集成,并防止在内容不匹配时隐藏表中的任何行
没有寻呼机小部件/插件,您需要绑定到filterEnd
事件并执行自己的ajax调用。使用filltext.com提供JSON数据,因此结果将与筛选器不匹配,但您可以看到它在筛选后更新。您可以查看console网络选项卡以查看实际使用的URL
HTML
#
身份证件
弗斯特
最后
陈述
信息
剧本
$(function () {
var $table = $('table'),
lastSearch = [],
updateAjax = function (filters) {
$.getJSON('http://www.filltext.com/?callback=?', {
// add the current filters to be serialized
// into a URL query string
// commented out here or filltext.com returns nothing
// 'filter': filters
// the following parameters are needed for
// filltext.com to return content
'rows': 10,
'#': '{index}',
'ID': '{randomNumberLength|3}',
'First': '{firstName}',
'Last': '{lastName}',
'State': '{usState|abbr}',
'Info': '{lorem|3}'
})
.done(function (data) {
buildTable(data);
});
},
buildTable = function (data) {
if (data) {
var col, row, txt,
headers = ['#', 'ID', 'First', 'Last', 'State', 'Info'],
len = headers.length,
rows = '';
size = data.length;
for (row = 0; row < size; row++) {
rows += '<tr>';
for (col = 0; col < len; col++) {
txt = data[row][headers[col]];
rows += '<td>' + txt + '</td>';
}
rows += '</tr>';
}
$table.find('tbody')
.html(rows)
.trigger('update');
}
};
$table.on('filterEnd', function (e, c) {
// prevent ajax spamming
var ls = c.$table.data('lastSearch');
if (lastSearch.join('-') !== ls.join('-') ) {
lastSearch = ls;
updateAjax(lastSearch);
}
})
.tablesorter({
theme: 'blue',
widthFixed: true,
widgets: ['zebra', 'filter'],
widgetOptions: {
// prevents rows from getting hidden
filter_serversideFiltering: true
}
});
});
$(函数(){
变量$table=$('table'),
lastSearch=[],
updateAjax=函数(过滤器){
$.getJSON('http://www.filltext.com/?callback=?', {
//添加要序列化的当前筛选器
//转换为URL查询字符串
//在此处注释或filltext.com不返回任何内容
//“过滤器”:过滤器
//需要以下参数来执行以下操作:
//filltext.com返回内容
“行”:10,
“#”:“{index}”,
“ID”:“{randomNumberLength | 3}”,
“First”:“{firstName}”,
'Last':'{lastName}',
“州”:“美国州”,
“信息”:“{lorem|3}”
})
.完成(功能(数据){
构建表(数据);
});
},
buildTable=函数(数据){
如果(数据){
变量col,行,txt,
标题=['#','ID',First','Last','State','Info'],
len=页眉长度,
行=“”;
大小=数据长度;
用于(行=0;行<大小;行++){
行+='';
for(col=0;col
这就是我能找到的全部内容:我想您可能需要设置一个列作为筛选器,打开控制台,查看发送了哪些标题。@DevlshOne该页面有旧版本的my fork of tablesorter的文档。这是。
$(function () {
var $table = $('table'),
lastSearch = [],
updateAjax = function (filters) {
$.getJSON('http://www.filltext.com/?callback=?', {
// add the current filters to be serialized
// into a URL query string
// commented out here or filltext.com returns nothing
// 'filter': filters
// the following parameters are needed for
// filltext.com to return content
'rows': 10,
'#': '{index}',
'ID': '{randomNumberLength|3}',
'First': '{firstName}',
'Last': '{lastName}',
'State': '{usState|abbr}',
'Info': '{lorem|3}'
})
.done(function (data) {
buildTable(data);
});
},
buildTable = function (data) {
if (data) {
var col, row, txt,
headers = ['#', 'ID', 'First', 'Last', 'State', 'Info'],
len = headers.length,
rows = '';
size = data.length;
for (row = 0; row < size; row++) {
rows += '<tr>';
for (col = 0; col < len; col++) {
txt = data[row][headers[col]];
rows += '<td>' + txt + '</td>';
}
rows += '</tr>';
}
$table.find('tbody')
.html(rows)
.trigger('update');
}
};
$table.on('filterEnd', function (e, c) {
// prevent ajax spamming
var ls = c.$table.data('lastSearch');
if (lastSearch.join('-') !== ls.join('-') ) {
lastSearch = ls;
updateAjax(lastSearch);
}
})
.tablesorter({
theme: 'blue',
widthFixed: true,
widgets: ['zebra', 'filter'],
widgetOptions: {
// prevents rows from getting hidden
filter_serversideFiltering: true
}
});
});