Codeigniter分页与修改表

时间:2015-02-22 11:03:43

标签: php mysql twitter-bootstrap codeigniter pagination

我是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获取的表格,您可以创建分页。我希望我错了。

这是我的页面图像。感谢您花时间阅读我的问题。对不起我的英语不好。干杯!

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Codeigniter pagination

  1. 加载库和帮助程序:

    $this->load->library('pagination');
    $this->load->helper("url");
    
  2. 传递配置变量,初始化并创建链接:

     $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();
    
  3. 您可以使用Bootstrap格式化链接(请参阅Stack Overflow处的以下答案):

     $config['full_tag_open'] = '<ul class="pagination">';
     $config['full_tag_close'] = '</ul>';            
     $config['prev_link'] = '&laquo; Previous';
     $config['prev_tag_open'] = '<li>';
     $config['prev_tag_close'] = '</li>';
     $config['next_link'] = 'Next &raquo;';
     $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>';
    
  4. 将变量传递给您的模型和视图:

     $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); 
    
  5. SitePointFormGet查看这些有用的链接。

    我希望这一切都有帮助!