我正在使用zend框架,并希望根据从MySQL表接收的数据对目录进行分页。我想在html表中只显示10行。
这是我有的.phtml代码..
<div class="panel-body">
<?php
if(isset($this->ErrorMessage))
echo "<div class='alert alert-danger'>" . $this->ErrorMessage . "</div>";
if(isset($this->success))
echo "<div class='alert alert-success'>" . $this->success . "</div>";
echo $this->form;
?>
<!-- / .table -->
<div class="table-responsive">
<table class="table table-striped table-hover dataTable table-bordered no-footer" role="grid">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<?php if(isset($this->results)) { ?>
<?php foreach($this->results as $result) { ?>
<tr>
<td><?php echo $result->id; ?></td>
<td><?php echo $result->name; ?></td>
</tr>
<?php } ?>
<?php } ?>
</tbody>
</table>
</div>
</div>
所以如何添加分页...
答案 0 :(得分:0)
您没有说明是否要在客户端或服务器端进行分页。如果要在客户端进行分页,最简单的方法是使用JQuery DataTables:
示例:
$(document).ready(function() {
$('.dataTable').DataTable();
} );
答案 1 :(得分:0)
首先,您需要使用Paginator
课程。假设您已经有一个工厂类,它将tablegateway适配器的实例传递给您的modeltable类。让我们创建一个函数来检索所有数据
public function fetchAll()
{
$dbSelect = new DbSelect($select, $this->tableGateway->getAdapter(), $this->tableGateway->getResultSetPrototype());
return new Paginator($dbselect);
}
在您的控制器中,您将为此做一些类似的事情。
public function indexAction()
{
$this->view->setTemplate("application/index/index");
$paginator = $this->getServiceLocator()->get("myModelTable")->fetchAll();
$paginator->setCurrentPageNumber((int) $this->params("page", 1));
$paginator->setItemCountPerPage(10);
$this->view->paginator = $paginator;
return $this->view;
}
在您的视图中,将部分放在某处(通常位于文件的底部)
echo $this->paginationControl($this->paginator, 'sliding', 'application/pagination.phtml', ['route' => 'application']);