Разбивка на DataTables - кнопка «Далее» только добавляет данные, не меняя страницу - PullRequest
0 голосов
/ 25 октября 2018

Я работаю с dataTables в одном из моих codeigniter проектов на server-side с использованием MSSQL Database.Я уже использовал этот плагин несколько месяцев назад также и в других моих проектах без подобных проблем.Каждый раз, когда я перехожу на другую страницу таблицы, Данные должны отображать следующие 10 записей (item 11 - 20).Вместо этого следующие записи 11 - 20 добавляются ниже первого 1 - 10 records.Код ниже работает над моими другими проектами, используя MySQL database.Я думаю, если это потому, что *1001* вместо Top, когда дело доходит до pagination?

Первая страница с 10 записями: enter image description here

Вторая страница, пункты 11 - 20, добавляются ниже enter image description here

Вот мой код для view.php

var table =  $('#impDT').DataTable({
               "language": {
                  "processing": "<i class='fa fa-circle-o-notch fa-spin fa-3x fa-fw' style='font-size:2em'></i>"
                   },
               "aLengthMenu": [[10, 25, 50], [10, 25, 50]],
               "processing":true,
               "serverSide":true,
               "order":[],
               "ajax":{
                    url:'impEntryDT',
                    type:"POST"
               },
               "columnDefs":[
                    {
                       "targets":[5],
                       "orderable":false,
                    },
               ],
               dom:'lBfrtip',
                   buttons: [
                    {
                      extend: 'excelHtml5',
                      text: '<i class="fa fa-file-excel-o" aria-hidden="true"></i>&nbsp;Excel',
                      className: 'export-btn',
                      titleAttr: 'Excel',
                      title: 'Excel- Formal Entry'
                    },
                    {
                      extend: 'csvHtml5',
                      text: '<i class="fa fa-file-text-o" aria-hidden="true"></i>&nbsp;CSV',
                      className: 'export-btn',
                      titleAttr: 'CSV',
                      title: 'CSV- Formal Entry'
                    },
                    {
                      extend: 'pdfHtml5',
                      text: '<i class="fa fa-file-pdf-o" aria-hidden="true"></i>&nbsp;PDF',
                      className: 'export-btn',
                      titleAttr: 'PDF',
                      title: 'PDF - Formal Entry'
                    },
                    {
                      text: '<i class="fa fa-refresh" aria-hidden="true"></i>',
                      className: 'refresh-btn',
                      action: function ( e, dt, node, config ){
                          table.clear().draw();
                          table.ajax.reload();
                      }
                   }
                        ]
          });

Controller.php

public function get_formal_list(){
           $entry = 'formal';
           $output = array(  
                "draw"                =>  intval($_POST["draw"]),  
                "recordsTotal"        =>  $this->Formal_m->get_all_data($entry),  
                "recordsFiltered"     =>  $this->Formal_m->get_filtered_data($entry),
                "data"                =>  $this->Formal_m->make_datatables($entry)  
           );  
           echo json_encode($output);
    }

Model.php

public function make_datatables($entry){
               $COMINS2 = $this->load->database('comins2', TRUE);
               if($entry == 'formal'){
                    $COMINS2->select('*')
                   ->from('TBLIMPAPL_MASTER');

                   if(isset($_POST["order"]))  {  
                        $COMINS2->order_by($this->order_column[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);  
                   }else{
                        $COMINS2->order_by('ApplNo', 'DESC');
                   }
                   if($_POST["length"] != -1){
                        $COMINS2->limit($_POST['length'], $_POST['start']);
                   }
                      $result = $COMINS2->get()->result();
                   return $this->formal_domain_logic($result, $entry);
               }

          }

public function formal_domain_logic($fetch_data, $entry){
       $data = array();

         foreach($fetch_data as $row){
            $sub_array = array();
            $sub_array[] = "<a onclick='edit_view_formal(".$row->ApplNo."); ' href='#edit_informal' class='edit_informal'>
                            <font color='blue'>".$row->ApplNo."<font>
                            <input type='hidden' id='appnum".$row->ApplNo."' value='".$row->ApplNo."'</a>";

            $sub_array[] = $row->MDec;
            $sub_array[] = $row->ConTIN;
            $sub_array[] = $row->ConName;
            $sub_array[] = $row->Stat;
            $sub_array[] = $row->CreationDate;
            $data[] = $sub_array;  
       }
       return $data;

  }


public function get_filtered_data($entry){  
           $COMINS2 = $this->load->database('comins2', TRUE);

           if($entry == 'formal'){
                $COMINS2->select('*')
                 ->from('TBLIMPAPL_MASTER');
               }

               if(isset($_POST["order"]))  {  
                   $COMINS2->order_by($this->order_column[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);  
               }else{
                    $COMINS2->order_by('ApplNo', 'DESC');
               }
                  return $result = $COMINS2->get()->num_rows();

           }

      }

public function get_all_data($entry)  
      {
            $COMINS2 = $this->load->database('comins2', TRUE);
            if($entry == 'formal'){
                $COMINS2->select('*')
                    ->from('TBLIMPAPL_MASTER');
             return $COMINS2->count_all_results();  
            }


      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...