【问题标题】:Search is not working in datatables for dynamic data in codeigniter在 codeigniter 中的动态数据的数据表中搜索不起作用
【发布时间】:2019-02-13 07:22:59
【问题描述】:

我对 codeigniter 很陌生,我的数据库中有两个表,然后是 "ip_companies""ip_clients",我可以在其中保存 ip_companies table 中的公司,我可以保存 ip_clients table 中的员工数量以及公司 @987654325 @。这样我就可以拯救一家公司的所有员工。

当我在表单中选择现有公司时,该公司的字段详细信息应自动填写,其员工列表应显示在该表单下。我正在使用数据表来显示员工表,并且我正在动态地将数据获取到表中,因为我必须根据我在表单中选择的现有公司获取员工列表。

一切正常,但当我尝试搜索姓名、gmail 或部门时,搜索和分页不起作用。在inspect-->network 中,它显示了我搜索过的内容,但表格没有改变,也没有显示结果,它显示"processing..."

谁能帮我解决这个问题。我正在发布我的文件。

我的视图文件-->Form.php 用于联系人表

<div id="clt_dt" style="display:none;">
    <div id="headerbar" >
        <h1 style="margin-top:5px">Contacts List</h1>
        <hr style="height:2px;border:none;color:#333;background-color:#333;" />
        </div>

    <div>
  <table id="mytable" class="table table-bordered table-striped table-hover" style="width:100%">
      <thead>
            <tr>
                <th>S.No</th>
                <th>Contact Name</th>
                <th>Designation</th>
                <th>Department</th>
                <th>Phone </th>
                <th>Email</th>
                <th>Actions</th>
            </tr>
        </thead>
      <tbody id="tbody_client">
          </tbody>
    </div>
</div>

我在view 文件中的script

function all_cmp(org_id){
    $.post( "<?php echo base_url();?>clients/get_orgID", { org_id: org_id })
         .done(function(data) {
        var obj = $.parseJSON(data);
        if(obj[0].org_name!='')
        {
            if(obj[0].org_name !=''){$('#company_id').val(obj[0].org_name);}
            if(obj[0].org_details !=''){$('#org_details').val(obj[0].org_details);}else{$('#org_details').val('');}
            if(obj[0].org_address !=''){$('#org_address').val(obj[0].org_address);}else{$('#org_address').val('');}
            if(obj[0].org_city !=''){$('#org_city').val(obj[0].org_city);}else{$('#org_city').val('');}
            if(obj[0].org_state !=''){$('#org_state').val(obj[0].org_state);}else{$('#org_state').val('');}
            if(obj[0].org_zipcode !=''){$('#org_zipcode').val(obj[0].org_zipcode);}else{$('#org_zipcode').val('');}
            if(obj[0].org_country !=''){$('#org_country').val(obj[0].org_country);}else{$('#org_country').val('');}
            if(obj[0].org_phone !=''){$('#org_phone').val(obj[0].org_phone);}else{$('#org_phone').val('');}
            if(obj[0].org_email !=''){$('#org_email').val(obj[0].org_email);}else{$('#org_email').val('');}
            if(obj[0].org_website !=''){$('#org_website').val(obj[0].org_website);}else{$('#org_website').val('');}
            if(obj[0].org_fax !=''){$('#org_fax').val(obj[0].org_fax);}else{$('#org_fax').val('');} 
            if(obj[0].org_country !=''){$('#org_country').val(obj[0].org_country);}else{$('#org_country').val('');}
           $('#ser_org').hide(); $('#clt_dt').show(); $('#new_cmp').hide();
        } else{ $('#org_details').val('');  $('#org_address').val('');  $('#org_city').val(''); $('#org_state').val(''); $('#org_zipcode').val(''); $('#org_country').val('');
                $('#org_phone').val(''); $('#org_email').val(''); $('#org_website').val(''); $('#org_fax').val('');  $('#org_country').val(''); $('#clt_dt').hide();
            $('#new_cmp').show();  
        }
  }); $('#company_idd').val(org_id);
  
  // Existed Client Display by Company ID
  if(org_id!='')
  {
      $('#mytable').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "<?php echo base_url();?>clients/get_cmpidd",
            "data": function ( d ) {
                d.cmp_idd = org_id;
            }
        }
        
    } );
    
  }

  
  }

我的controller-->Clients.php 用于获取员工表格

public function get_cmpidd()
{
    if(isset($_REQUEST['cmp_idd']))
    {    $cmpid = $_REQUEST['cmp_idd'];
         $cmp = $this->mdl_clients->get_cmp_id($cmpid);
         $draw = intval($this->input->get("draw"));
         $start = intval($this->input->get("start"));
         $length = intval($this->input->get("length"));
         foreach($cmp->result() as $key=>$cmpdt){
              $dsg = $this->db-> query("SELECT * FROM ip_designation where id='".$cmpdt->client_designation."'"); 
              $dname = $dsg->row_array();
              $data[] = array(
              $key+1,
              $cmpdt->client_name,
              $dname['name'],
              $cmpdt->client_department,
              $cmpdt->client_phone,
              $cmpdt->client_email,
              '<a href="'.base_url().'clients/form/'.$cmpdt->company_id.'/'.$cmpdt->client_id.'"><i title="Edit" class="fa fa-pencil-square-o" aria-hidden="true"></i></a>
               <a href="'.base_url().'clients/conremove/'.$cmpdt->client_id.'"><i title="Delete" class="fa fa-trash" aria-hidden="true"></i></a>'
           );

      }

      $output = array(
           "draw" => $draw,
             "recordsTotal" => $cmp->num_rows(),
             "recordsFiltered" => $cmp->num_rows(),
             "data" => $data
        );
      echo json_encode($output);
    }
      exit();
      ?><?php  ?> 

         <?php 



}

我的modal-->Mdl_clients.php 用于员工表

public function get_cmp_id($id)
{   $this->db->select('*');
    $this->db->from('ip_clients');
    $this->db->where('company_id',$id);
    $query = $this->db->get();
    return $query;//return $client;
}

【问题讨论】:

    标签: codeigniter search datatables


    【解决方案1】:

    为了让您的生活更轻松,我建议您使用 ignited 数据表库。这个库使用jquery datatables,它会帮助你解决所有的搜索,排序问题这里是点燃的数据表库链接

    旧版本

    https://github.com/IgnitedDatatables/Ignited-Datatables

    版本适用于 CI 3

    https://github.com/chland/Ignited-Datatables

    Jquery 数据表链接

    https://datatables.net/

    享受快乐的编码。

    【讨论】:

    • 感谢您的回复...我会调查的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2018-12-02
    相关资源
    最近更新 更多