簡體   English   中英

多列搜索數據表

[英]multi column searching datatables

我有服務器端的數據表。 我在多列搜索中遇到問題,所有列都可以工作,如果我只搜索一列。但是,如果我在多列中搜索,則過濾器不起作用。僅搜索一個start_date過濾器也是可以的。但是如果我同時搜索名稱和日期,則過濾器不起作用。 所以這是我的代碼:

 //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(); }) 
 <!-- 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> 

服務器端:

 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 } 

如果我在數據表中搜索多列,如何創建條件?

您的服務器端代碼需要更改,請嘗試如下操作:

$where = "";
if (!empty($full_name))
{
    $where .= "And full_name = '$full_name' ";
}
if(!empty($start_date))
{
    $where .= "And start_date >= to_date('$start_date','DD-MM-YYYY') ";
}

if(!empty($end_date))
{
    $where = "And end_date <= to_date('$end_date','DD-MM-YYYY') ";
}

在旁注中:您將此問題標記為與Codeigniter相關的問題-不使用查詢生成器的背后原因是什么? (您的方法有點“不安全” ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM