我目前有一个基于选择框可过滤的DataTable()uhm表。
我有3列感兴趣的5,6,7和这个特殊的过滤器,我想做2件事。
因此,实质上所有剩余的行都将包含:!=" 0"," 0"," 0",隐藏所有其他排列。
现在我有了第1部分的工作,即:
$('.dataTable').DataTable().column(5).search('', false, false, false).draw();
$('.dataTable').DataTable().column(6).search('^0$', true, false, false).draw();
$('.dataTable').DataTable().column(7).search('^0$', true, false, false).draw();
但我完全被第2部分困扰了。
答案 0 :(得分:0)
我认为这是一种解决方法,因此根据具体情况,对于发现自己处于相同情况的其他人而言,它可能无法在100%的情况下发挥作用,但是由于我的困境,它解决了这个问题。
基本上,我会在PHP中生成表格的位置计算行中的3个类别(a,b,c)中的哪一个。将其添加到行上的data-search =“”标记,然后搜索该行。
<select name="type" id="type">
<option value='' selected>All Types</option>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select>
//...
foreach($pos as $po) {
//...
if($po['one'] == $po['two'] && $po['two'] == $po['three'] && $po['three'] == 0)
$po_type = 'b';
elseif($pov['one'] == 0)
$po_type = 'b';
else
$po_type = 'a';
<td data-search="<?php echo $po_type; ?>"><?php echo $po['one']; ?></td> // column 5, relevant in JavaScript
//...
}
//...
$('#type').change(function(){
if($(this).val() != '') {
$('.dataTable').DataTable().column(5).search('', false, false, false);
$('.dataTable').DataTable().column(5).search($(this).val(), false, false, false).draw();
}
else {
$('.dataTable').DataTable().column(5).search('', false, false, false);
}
});
这是有效的,因为当对所述单元执行搜索时,数据搜索属性会覆盖单元格值,当与生成表格时将逻辑移动到PHP相结合时,避免了对更复杂的组合的需求。正则表达式在OP中进行搜索。
尽管如此,DataTable结束的解决方案对于类似的情况来说既有趣又有帮助。这可能是不可行的。