我在php codeigniter工作。我使用分页但是如何对像Datatable分页这样的字段数据进行排序。请帮帮我
答案 0 :(得分:1)
在视图顶部添加以下代码
$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);
希望在上面申请之后这会有用。
答案 1 :(得分:0)
尝试在查询中使用ASC或DESC order子句。您的数据将被排序。
答案 2 :(得分:0)
在视图中,标记形式之间:
<!--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);
有疑问吗?