任何人都用排序进行php代码点火器分页


Anyone did php codeigniter pagination with sorting?

我在php代码点火器中工作。我处理的是分页,但如何像Datatable分页一样对字段数据进行排序。请帮助我

在视图顶部添加以下代码

$page = (int)$this->uri->segment(3);
if($page==0) { $page=1; }
$order_seg = $this->uri->segment(5,"asc"); 
$order= ($order_seg == "asc") ? "desc" :  "asc";

使用以下表格标题

<th><a href="<?php echo base_url().'test/view/'.$page.'/f_name/'.$order; ?>">First Name</a></th>

并将参数应用于控制器函数视图(),如

function view($page=1,$sort='f_name',$order='desc'){}

并像一样将其传递给您的模型

$data['result']=$this->test_Model->view((($page-1)*$config['per_page']),$config['per_page'],$sort,$order);

希望在申请以上内容后能起作用。。

尝试在查询中使用ASC或DESC顺序子句。您的数据将被排序。

在视图中,标签形式之间:

<!--Código para capturar la ordenación-->
  <input type="hidden" id="orderby" name="orderby" value="<?php if (isset($orderby)) echo $orderby; ?>">
  <input type="hidden" id="tipoOrderby" name="tipoOrderby" value="<?php if (isset($tipoOrderby)) echo $tipoOrderby; ?>">

如果你把这段代码放在你的头表中:

 <thead>
              <tr>
                <th> Column 1 <a  href="#" data-type="order" data-field="column1"><i class="fa fa-sort"></i></a></th>
                <th> Column 2 <a href="#" data-type="order" data-field='column2'><i class="fa fa-sort"></i></a></th>
              </tr>
            </thead>

在jquery(file.js)中,(可以由您改进):

// Código para controlar la ordenación de la tablas
      $(document).find('a[data-type="order"]').each(function () {
        if ($(this).data("field") == document.form1.orderby.value) {
          if (document.form1.tipoOrderby.value == "ASC") {
            $(this).data("order", "DESC");
            $("i", this).addClass('fa-sort-desc');
          } else {
            $("i", this).addClass('fa-sort-asc');
            $(this).data("order", "ASC");
          }
        } else {
          $("i", this).addClass('fa-sort');
          $(this).data("order", "ASC");
        }
        $(this).click(function (event) {
          event.preventDefault();
          document.form1.orderby.value = $(this).data("field");
          document.form1.tipoOrderby.value = $(this).data("order");
          document.form1.submit();
        });
      });

在Codeigniter控制器中:

   if($form_data['orderby'] == ""){ //Default sort
      $orderby = "name";
      $tipoOrderby = 'ASC';
    }
    else{
      $orderby = $this->input->post('orderby');
      $tipoOrderby = $this->input->post('tipoOrderby');
    }
  //Returns values view
  $data['orderby'] = $orderby;
  $data['tipoOrderby'] = $tipoOrderby;

最后,您应该将其包含在您的查询模型中=)

$query = $this->model->get($pages, $this->uri->segment($config['uri_segment']), $where, $orderby, $tipoOrderby);

有什么疑问吗?