Yii2 dataTables过滤器

时间:2018-08-17 08:16:40

标签: javascript jquery datatables yii2

我正在使用Fedemotta(https://github.com/fedemotta/yii2-widget-datatables)的Yii2和DataTables扩展。现在,我需要为表添加列过滤器。所以我正在做

$(document).ready(function() {

$('#datatables_cards-list').append('<tfoot><tr></tr></tfoot>');
$('#datatables_cards-list thead th').each( function () {    
    var title = $(this).text();
    $('#datatables_cards-list tfoot tr').append( '<th rowspan="1" colspan="1"><input type="text" placeholder="Шукати '+title+'" /></th> ' );
} );

// DataTable
var table = $('#datatables_cards-list').DataTable();

// Apply the search
table.columns().every( function () {
    var that = this;

    $( 'input', this.footer() ).on( 'keyup change', function (e) {
        e.preventDefault();
        if ( that.search() !== this.value ) {
            that
                .search( this.value )
                .draw();
        }
    } );
} );
} );

这是dataTables网站上的示例,但就我的表而言,<tfoot>尚未通过js添加。问题是,它什么也没找到。无论我在搜索字段中键入什么,都说什么都没找到。当我将搜索输入直接放在表标题上时,它会起作用,但是如果我单击输入,则列排序会发生变化,因为我单击了它的标题。

这是PHP代码

DataTables::widget([
                    'dataProvider' => $cards,
                    'filterModel'=>$fModel,
                    'id'=>'cards-list',
                    'clientOptions'=>[
                        'language'=>Yii::$app->params['dataTablesLang'],
                    ],
                    'columns' => [
                         'balance',
                          .....
                    ]
               ]);

0 个答案:

没有答案