页面加载时的yadcf初始过滤器值

时间:2016-11-02 20:52:08

标签: php datatables yadcf

所以我一直在四处寻找关于如何做到这一点的答案,并且没有多少运气,所以我想我会在这里发布一些东西。我正在寻找的是一种为过滤器设置默认值的方法,因此当页面加载时,它将根据此初始值自动搜索数据表。例如。我想预先加载具有特定日期的range_date过滤器 - 实际上将从$ _GET变量中获取的日期,因此该值不能进行硬编码。我目前的列代码看起来像这样....

{column_number : 4, filter_type: "range_date", date_format: 'yy-mm-dd'},`enter code here`

到目前为止,我找到了一个关于添加exFilterColumn的来源,但是没有关于如何使用filter_type: "range_date"任何想法的示例?

1 个答案:

答案 0 :(得分:2)

经过一番挖掘后,我发现了exFilterColumn如何使用range_date过滤器。首先,我必须将以下内容添加到列初始化中:

filter_delay: 1500, filter_default_label: 'Search'

然后我不得不添加

yadcf.exFilterColumn(tableOne, [
    [1, {
        from: '2016-11-02',
        to: '2016-11-03'
    }],
]);

我的完整代码如下所示:

// Appointment datatable
        var table = $('#tableID').dataTable( {
            "processing": true,
            "serverSide": true,
            "ajax":{
                url :"ajax/users-get-table-data.php" // json datasource
                type: "post",  // method  , by default get
                data:"workOrderStatusID=2",
            },
        }).yadcf([
            {column_number : 0, filter_type: "text", filter_default_label: ['Search']},
            {column_number : 1, filter_type: "range_date", date_format: 'yy-mm-dd', filter_delay: 1500, filter_default_label: 'Search'}
        ]);

        yadcf.exFilterColumn(table, [
            // 1 is the matching column of my targeted range_date filter
            [1, {
                <? //setting the date from get variable
                $date = mysqli_real_escape_string($mysqli,$_GET['date']);
                $tomorrow = date('Y-m-d',strtotime($date . "+1 days"));
                ?>
                from: '<? echo $date; ?>',
                to: '<? echo $tomorrow; ?>'
            }],
        ]);

如果您正在阅读此内容并希望预先加载常规列过滤器(不是范围日期),则可以使用以下内容:

yadcf.exFilterColumn(table, [
    // 1 being the column number, and "value" being the value you want it to initially search for when page loads
    [1, "value"]
]);