我正在显示数据。因为它包含超过1000行数据。我希望有一个服务器端分页,而不是jquery提供的。正如我已经注意到的,可数据加载所有1000个查询,并且只执行客户端分页。这是我的控制器
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>
发布于 2016-06-27 08:40:37
我最近还在我的项目中集成了DataTable。实际上,在codeigniter中,有一些library可以用于DataTable。请查找以下一些有用的libraries
因此,您只需遵循readme中给出的指示。我正在为Ignited-Datatables提供示例,并将其集成到我的项目中。
CODEIGNITER
DataTable.php文件夹中移动application\library。controller的constructor中加载
$this->load->library('Datatables');$this->datatables->select( pass the column which you want to display in table and manage order also respect to your table)。$this->datatables->from('ct_staff_activity_ftth');在这里传递表名。JAVASCRIPT
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. ] });希望它能帮到你。如果您需要进一步的帮助,请告诉我。
https://stackoverflow.com/questions/37910677
复制相似问题