多列搜索数据表

时间:2016-11-04 08:15:15

标签: javascript jquery datatable

我有服务器端的数据表。我有多列搜索问题,所有列工作,如果我只搜索一列一列。但如果我多列搜索,过滤器没有工作。例如我只搜索"名称&#34 ;过滤工作,如果我只搜索一个start_date过滤器工作。但如果我同时搜索名称和日期.filter没有工作。 所以这里是我的代码:



//my script: 
var table = $('#dataTables');

 // begin first table
    table.dataTable({

    "ajax": {
            "url": "<?php echo site_url('leader') ?>",
            "type": "POST",
            "data": function(d) {
            d.full_name = $('#full_name').val(); 
            d.start_date = $('#start_date').val(); //whats right code?
            d.end_date = $('#end_date').val(); //whats right code?
                      
            },
            },
      .....
      .....
      $('#btn-search').click(function(){
            var data_tables  =         $('#dataTables').DataTable();
            data_tables
                .search( this.value )
                .draw();
        })
&#13;
<!-- my view: -->
<div class="form-inline">
<div class="form-group">
<input type="text" name="full_name" class="form-control" id="full_name" placeholder="Name"/>
</div>
                    
<div class="form-group">
<div class="input-group date date-picker" data-date-format="dd-mm-yyyy">
    <input type="text" name="start_date" class="form-control" readonly id="start_date" size="8">
    <span class="input-group-btn">
    <button class="btn default" type="button">
        <i class="fa fa-calendar"></i>
    </button>
    </span>
</div>
</div>
<div class="form-group">
<div class="input-group date date-picker" data-date-format="dd-mm-yyyy">
<input type="text" name="end_date" class="form-control" readonly id="end_date" size="8">
<span class="input-group-btn">
<button class="btn default" type="button">
    <i class="fa fa-calendar"></i>
</button>
</span>
</div>
</div>
 <button class="btn btn-warning" id="btn-search">Search</button>
</div>
&#13;
&#13;
&#13;

服务器端:

&#13;
&#13;
if ($full_name) 
		{
            $where = "And full_name = '$full_name'";
        }
        else if($start_date) 
        {
        	$where = "And start_date >= to_date('$start_date','DD-MM-YYYY') ";
        }
        else if($end_date) 
        {
        	$where = "And end_date <= to_date('$end_date','DD-MM-YYYY') ";
        }
        
        else
        {
        	$where = " "; //how to combine 3 above
        }
&#13;
&#13;
&#13;

如果我在数据表中搜索多列,如何创建条件?

1 个答案:

答案 0 :(得分:0)

您的服务器端代码需要更改 尝试这样的事情:

{{1}}

旁注: 您将此问题标记为与Codeigniter相关的问题 - 是什么原因导致不使用查询构建器? (你的方法有点&#34;不安全&#34; ......)