php 过滤出数字,php – DataTables columnFilter数字范围过滤

我有数据库,在“BIRTH_DATE”栏中有日期(例如2015-06-26).我使用DataTables为用户显示信息.我想进行数字范围搜索.但是,当我使用DataTables插件ColumnFilter并尝试使用数字范围类型过滤器时,它不起作用.

一旦我输入任何值来自或来自字段,它告诉我没有结果.但是如果在同一列中有一行写日期,就像20150626过滤器显示的那样.所以我理解问题是符号 – 在我的数字中间.我怎么能让过滤器忽略 – 签名?

数字范围过滤器代码:

function fnCreateCharRangeInput() {

th.html(_fnRangeLabelPart(0));

var sFromId = sTableId + 'range_from_' + i;

var from = $('');

th.append(from);

th.append(_fnRangeLabelPart(1));

var sToId = sTableId + 'range_to_' + i;

var to = $('');

th.append(to);

th.append(_fnRangeLabelPart(2));

th.wrapInner('');

var index = i;

aiCustomSearch_Indexes.push(i);

//------------start range filtering function

/* Custom filtering function which will filter data in column four between two values

* Author: Allan Jardine, Modified by Jovan Popovic

*/

$.fn.dataTableExt.afnFiltering.push(

function (oSettings, aData, iDataIndex) {

var iMin = document.getElementById(sFromId).value * 1;

var iMax = document.getElementById(sToId).value * 1;

var iValue = aData[index] == "-" ? 0 : aData[index] * 1;

if (iMin == "" && iMax == "") {

return true;

}

else if (iMin == "" && iValue < iMax) {

return true;

}

else if (iMin < iValue && "" == iMax) {

return true;

}

else if (iMin < iValue && iValue < iMax) {

return true;

}

return false;

}

);

//------------end range filtering function

$('#' + sFromId + ',#' + sToId, th).keyup(function () {

var iMin = document.getElementById(sFromId).value * 1;

var iMax = document.getElementById(sToId).value * 1;

if (iMin != 0 && iMax != 0 && iMin > iMax)

return;

oTable.fnDraw();

});

}

编辑:2015-07-02

或者也许有人可以帮助我使这个过滤器忽略输入格式只是运行简单的动作,例如:

Select * from table where BIRTH_DATE between '2010' and '2011-12'

因为这样的查询在sql中工作正常.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值