2016-06-19 2 views
0

データを表示しています。 1000行以上のデータが含まれているためです。私はjquery datatableの代わりにサーバー側のページ付けをしたい。私が気づいたように、datatablesは1000のクエリをすべて読み込んで、クライアント側のページ付けだけを行います。 これは私のコントローラですjqueryデータテーブルのサーバー側ページ番号

function view_ftth_report() 
{ 

    if ($this->data['permission_ftth_report'] == '1') { 
    $this->load->model('staff_activity_model'); 
    $this->data['records'] = $this->staff_activity_model->view_ftth_report(); 

    $this->data['main_template'] = 'staff_activity/staff_activity_main'; 
    $this->data['inner_template'] = 'staff_activity/ftth/staff_activity_ftth_report_view'; 
    $this->data['inner_nav'] = 'staff_activity/staff_activity_nav'; 
    $this->load->view('common/common', $this->data); 
     } 
    else{ 
     $this->data['main_template'] = 'staff_activity/staff_activity_main'; 
     $this->data['inner_template'] = 'staff_activity/staff_activity_denied'; 
     $this->data['inner_nav'] = 'staff_activity/staff_activity_nav_denied'; 
     $this->load->view('common/common', $this->data); 
    } 
} 

これは私のモデルです。

function view_ftth_report(){ 
    $sql = "SELECT * FROM ct_staff_activity_ftth ORDER BY date DESC limit 20 "; 
    $data = array(); 
    $result = $this->db->query($sql); 
    foreach($result->result_array() as $row) 
    { 
     $data[] = $row; 
    } 
    return $data; 
} 

これは私の見解です。私はレコードを呼び出すためにajaxを使いました。

<script type="text/javascript"> 

$(function() { 
    $("#data_tbl").dataTable({ 
     "iDisplayLength": 50 
    }); 

}); 
</script> 
<div class="row"> 
<div class="col-md-12"> 
    <div class="box "> 
     <div class="box-body"> 
      <div class="row"> 
       <div class="col-md-12"> 
         <a href="<?php echo base_url();?>staff_activity/date_report_index"><button style="margin: 15px; padding: 10px; border-radius: 10px; border-collapse: collapse " class="btn btn-success btn-sm">Filter By Date</button></a> 

        <div class="col-md-12 table-responsive"> 
         <table class="table table-striped table-responsive" id="data_tbl"> 
          <h4>Recent Entries</h4> 
          <thead> 
          <tr> 
           <th>Sn.</th> 
           <th>Client's Name</th> 
           <th>Address</th> 
           <th>Fiber Length</th> 
           <th>Phone Number</th> 
           <th>Package</th> 
           <th>Result</th> 
           <th>Date</th> 
           <th>Team Name</th> 
           <th>Remarks</th> 
           <th>Edit</th> 
           <th>Delete</th> 

          </tr> 
          </thead> 
          <tbody id="result"> 
<?php 

          $count = 0; 

          foreach($records as $rec){ 
           $count = $count+1; 

           ?> 
           <tr> 
            <td><?php echo $count; ?></td> 
            <td><?php echo $rec['client_name']; ?></td> 
            <td><?php echo $rec['address']; ?></td> 
            <td><?php echo $rec['fiber_length']; ?></td> 
            <td><?php echo $rec['phone_number']; ?></td> 
            <td><?php echo $rec['package']; ?></td> 
            <td><?php echo $rec['result']; ?></td> 
            <td><?php echo $rec['date']; ?></td> 
            <td><?php echo $rec['team_name']; ?></td> 
            <td><?php echo $rec['remarks']; ?></td> 
            <td><a href="<?php echo base_url(); ?>staff_activity/edit_ftth_report/<?php echo $rec['id']?>">Edit</a></td> 
            <td><a href="javascript:void(0)" onclick="chk('<?php echo base_url(); ?>staff_activity/delete_ftth_report/<?php echo $rec['id'] ?>')">Delete</a></td> 

           </tr> 

           <?php 

          } 

          ?> 
          </tbody> 

         </table> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

答えて

1

また、私は私のプロジェクトで最近DataTableを統合します。 実際にcodeigniterには、DataTableで利用できるものがあります。libraryです。 は、いくつかの有用なlibraries

  1. Ignited-Datatables
  2. Codeigniter-DataTables

下記だから、あなただけのreadmeで与えられたinstractionに従ってご覧ください。 私はの例を提供していますIgnited-Datatables私は自分のプロジェクトに統合しています。あなたのapplication\libraryフォルダ内の

CodeIgniterの

  1. まず移動DataTable.php。中
  2. ロードしますcontrollerconstructor

    $this->load->library('Datatables');

  3. $this->datatables->select(pass the column which you want to display in table and manage order also respect to your table)

  4. $this->datatables->from('ct_staff_activity_ftth');ここにテーブル名を渡します。

JAVASCRIPT

  1. は、ビューファイルでdataTable.min.jsを含めます。
  2. document readyステージにコードを挿入します。

    $('#data_tbl').dataTable({ processing: true, serverSide: true, ajax: { "url": "/index.php/DataTableExample/dataTable", "type": "POST" }, columns: [ { data: "s.s_name" }, {data : "c.c_name"}, {data : "c.c_zip"}, { data: "$.city_state_zip" } //refers to the expression in the "More Advanced DatatableModel Implementation" ], aaSorting: [ [0, 'desc'] // provide the default sorting column with order numer. ] });

それはあなたを助けることを願っています。それ以上の援助が必要なら私に知らせてください。

+0

ありがとうございました。私はあなたの答えにつきます。さらなる助けが必要な場合は、あなたに連絡します。 –

関連する問題