Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery datatables自定义筛选器未搜索_Jquery_Datatables - Fatal编程技术网

Jquery datatables自定义筛选器未搜索

Jquery datatables自定义筛选器未搜索,jquery,datatables,Jquery,Datatables,我目前有使用数据库搜索API功能的自定义过滤器按钮 HTML JQuery var table = $('#rlist').dataTable( { "processing": true, "serverSide": true, "order": [[ 0, "asc" ]], "sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'&g

我目前有使用数据库搜索API功能的自定义过滤器按钮

HTML

JQuery

 var table = $('#rlist').dataTable( {
        "processing": true,
        "serverSide": true,
        "order": [[ 0, "asc" ]],
        "sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'>f>r>t<'row'<'col-sm-5'i><'col-sm-7'p>>",
        "sPaginationType": "full_numbers",
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
        "ajax": baseurl+"media/ajax_fetch"       

    });

    $('ul').on('click', 'a', function() {

          table
            .columns(1)
            .search($(this).text())
            .draw();
        });

        $('ul').on('click', 'a.all', function() {

          table
            .search('')
            .columns(1)
            .search('')
            .draw();
        });
var table=$('#rlist')。数据表({
“处理”:对,
“服务器端”:正确,
“订单”:[[0,“asc”]],
“sDom”:“t”,
“sPaginationType”:“完整编号”,
“长度菜单”:[[10,25,50,-1],[10,25,50,“全部”],
“ajax”:baseurl+“媒体/ajax\u获取”
});
$('ul')。在('click','a',function()上{
桌子
.栏目(1)
.search($(this).text())
.draw();
});
$('ul')。在('click','a.all',function()上{
桌子
.搜索(“”)
.栏目(1)
.搜索(“”)
.draw();
});
问题是我不想使用搜索API,我想将按钮
数据类型
属性发送到服务器端,在那里我可以手动操作,而不会干扰搜索功能


如何做到这一点?

我在当前项目中使用了类似的功能。基本上,您需要修改click事件以获取元素的
数据类型
属性,使用该数据调用ajax,然后清除表并添加新的搜索数据

但是,每次通过这种方法进行搜索时,都需要清除客户端表

$('ul')。在('click','a',function()上{
var elementType=$(this.attr(“数据类型”);
$.ajax({
类型:“POST”,
//假设服务器url类似于“/someURL/{elementType}”
url:urlToServer+elementType,
成功:功能(响应){
如果(答复){
table.clear().rows.add(response.draw();
}
//没有从服务器返回数据
else表。清除();
}
});
});

谢谢,我已经设置了分页,这会更新分页吗?例如,如果过滤器总共有20个结果,但我每页只显示10个?datatables会更新分页吗?如果按照我的建议使用
.clear()
,则会保留在datatables初始化期间设置的所有设置。这包括渲染函数、分页设置、排序设置等。
 var table = $('#rlist').dataTable( {
        "processing": true,
        "serverSide": true,
        "order": [[ 0, "asc" ]],
        "sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'>f>r>t<'row'<'col-sm-5'i><'col-sm-7'p>>",
        "sPaginationType": "full_numbers",
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
        "ajax": baseurl+"media/ajax_fetch"       

    });

    $('ul').on('click', 'a', function() {

          table
            .columns(1)
            .search($(this).text())
            .draw();
        });

        $('ul').on('click', 'a.all', function() {

          table
            .search('')
            .columns(1)
            .search('')
            .draw();
        });