[英]Number and a date range filter for datatable serverside script
我正在使用数据表(DataTables 1.10.10)和数据表编辑器。 对于我的服务器端脚本/表(500000行),我想要一个数字和一个日期范围过滤器。 由于简单的文本过滤器工作正常。 在哪里以及如何修改data.php
才能使范围过滤器正常工作? 那是我的设置:
<html>
<input data-column="2" id="min" name="min" type="number" min="0" max="500000">
<input data-column="2" id="max" name="max" type="number" min="0" max="500000">
</html>
我的脚本:
var table = $('#my-table').DataTable( {
dom: "Blfrtip",
ajax: {
url: "/data.php",
type: "POST",
data: function (d) {
d.minDate = $('#min').val();
d.maxDate = $('#max').val();
},
}
...
});
$('#min, #max').keyup( function() {
table.ajax.reload();
});
我是否需要进一步定义..数据中的值:
function (d) { d.minDate = $('#min').val(); d.maxDate = $('#max').val(); } },
...
像……
function( settings, data, dataIndex ) {
var min = parseInt( $('#min').val(), 10 );
var max = parseInt( $('#max').val(), 10 );
var id = parseFloat( data[6] ) || 0;
if ( ( isNaN( min ) && isNaN( max ) ) ||
( isNaN( min ) && id <= max ) ||
( min <= id && isNaN( max ) ) ||
( min <= id && id <= max ) )
{
return true;
}
return false;
}
不,你不!
function( settings, data, dataIndex ) {
var min = parseInt( $('#min').val(), 10 );
var max = parseInt( $('#max').val(), 10 );
var id = parseFloat( data[6] ) || 0;
if ( ( isNaN( min ) && isNaN( max ) ) ||
( isNaN( min ) && id <= max ) ||
( min <= id && isNaN( max ) ) ||
( min <= id && id <= max ) )
{
return true;
}
return false;
}
仅用于您的数据表实例完全在前端工作时。
现在,您已将d.minDate
和d.maxDate
传递给服务器,尝试通过服务器端的$_POST
数组捕获它们,然后在您的数据库查询(或用于检索数据的任何基础结构)中使用sth:
$query = '... WHERE date >= minDate & date <= maxDate ...';
使用这些参数过滤数据。
您可以看到:
<input type="number" min="0" max="500000">
代替 :
<input type="text">
因此,在这种情况下,您应该为文本输入添加验证
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.