我是codeigniter的新手,并且对如何进行分页没有绝对的了解。 我观看了一些视频教程并阅读了一些关于我如何在codeigniter上实现它的文章,但我的问题却完全不同。
我有一张显示在我视图中的发票表。我使用PHP创建表,foreach
来扫描数据行。更复杂的是增加了诸如编辑和打印等超链接操作之类的字段。我仍处于开发的早期阶段,但我已经可以看到此页面中显示的行太多的问题。有趣的是,我还在表格中添加了一些搜索过滤器。
以下是我创建表格的代码:
<?php
echo '<th>Date</th><th>Invoice #</th><th>Customer</th><th>Amount Due</th><th>Total</th><th>Status</th><th>Actions</th>';
foreach ($invoices as $a) {
if ($a->statusID == 1)
$status = '<span value = "'. $a->statusID .'" class="label label-success">PAID</span>';
elseif ($a->statusID == 2)
$status = '<span value = "'. $a->statusID .'" class="label label-warning">PARTIAL</span>';
elseif ($a->statusID == 4)
$status = '<span value = "'. $a->statusID .'" class="label label-default">SAVED</span>';
elseif ($a->statusID == 5)
$status = '<span value = "'. $a->statusID .'" class="label label-danger">OVERDUE</span>';
echo '<tr><td>'.$a->dateCreated.'</td><td>'.$a->invoiceNumber.'</td><td>'.$a->companyName.'</td><td>'.number_format($a->amountDue,2).'</td><td>'.number_format($a->totalAmount,2).'</td><td>'.$status.'</td><td>';
echo '<a data-toggle="tooltip" data-placement="top" data-original-title="Edit" href="invoice_new?id='.$a->invoiceNumber.'" onclick="retrieveInvoice('. $a->invoiceNumber.'); return false;" ><span class="glyphicon glyphicon-edit editButton" aria-hidden="true" style="margin-right:10px;"></span></a>';
echo '<a data-toggle="tooltip" data-placement="top" data-original-title="Add Payment" href="invoice_payment?id='.$a->invoiceNumber.'" ><span class="glyphicon glyphicon-usd" aria-hidden="true" style="margin-right:10px;"></span></a>';
echo '<a data-toggle="tooltip" data-placement="top" data-original-title="Print" href="printing/printInvoice?id='.$a->invoiceNumber.'" target="_blank"><span class="glyphicon glyphicon-print" aria-hidden="true" style="margin-right:10px;"></span></a>';
echo '</td>';
echo '</tr>';
}?>
根据我的观察,如果您不打算从DB获取的表格,您可以创建分页。我希望我错了。
这是我的页面图像。感谢您花时间阅读我的问题。对不起我的英语不好。干杯!
答案 0 :(得分:0)
您可以尝试使用Codeigniter pagination:
加载库和帮助程序:
$this->load->library('pagination');
$this->load->helper("url");
传递配置变量,初始化并创建链接:
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = $this->Your_Model->count_all_results();;
$config['per_page'] = 10;
$config["uri_segment"] = 3;
$choice = $config["total_rows"] / $config["per_page"];
$config["num_links"] = round($choice);
$this->pagination->initialize($config);
$data["links"] = $this->pagination->create_links();
您可以使用Bootstrap格式化链接(请参阅Stack Overflow处的以下答案):
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['prev_link'] = '« Previous';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = 'Next »';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
将变量传递给您的模型和视图:
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data["rows"] = $this->Your_model->your_function($config["per_page"],$page);
$this->load->view('your_view', $data);
我希望这一切都有帮助!