【问题标题】:Codeigniter Pagination and List.jsCodeigniter 分页和 List.js
【发布时间】:2019-08-07 10:12:29
【问题描述】:

我正在尝试让分页和 list.js(排序和搜索)与我的表格一起使用。

我尝试了任何可以在网上找到的建议,分页工作正常,list.js 工作正常,搜索和排序工作正常。但仅限于该页面上的项目。即我有 13 条记录,每页 5 条,所以 3 页。 List.js 仅搜索和排序该页面上的记录。不在未显示的页面上。

我的票控制器中的代码如下

$data['main_view'] = "tickets/index";

    //loading pagination library
    $this->load->library('pagination');


    $query = $this->db->get('tickets','5',$this->uri->segment(3));
    $data['tickets'] =  $query->result();
    //get all tickets
    $query2 = $this->db->get('tickets');

    $config['base_url'] = 'http://localhost/helpdesk/tickets/index/';
    $config['total_rows'] = $query2->num_rows();
    $config['per_page'] = 5;

    $config['full_tag_open'] = '<ul class="pagination">';
    $config['full_tag_close'] = '</ul>';

    $config['first_tag_open'] = '<li>';
    $config['last_tag_open'] = '<li>';

    $config['next_tag_open'] = '<li>';
    $config['prev_tag_open'] = '<li>';

    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';

    $config['first_tag_close'] = '</li>';
    $config['last_tag_close'] = '</li>';

    $config['next_tag_close'] = '<li>';
    $config['prev_tag_close'] = '</li>';

    $config['cur_tag_open'] = "<li class=\"active\"><span><b>";
    $config['cur_tag_close'] = "</b></span></li>";

    $this->pagination->initialize($config);
    $this->load->view('layouts/main',$data);

我的表格视图代码如下

<div id="tickets">
<input class="search" placeholder="Search" /> 

<table class="table table-hover">
    <thead>
        <tr class=table-danger>
            <th class="sort" data-sort="Title">
                Title                
            </th>

            <th class="sort" data-sort="Creator">
                Creator              
            </th>
            <th class="sort" data-sort="Date">
                Date             
            </th>
            <th class="sort" data-sort="SLA">
                Service Level Agreement              
            </th>
            <th class="sort" data-sort="Status">
                Status        
            </th>
        </tr>
    </thead>
    <tbody class="list">
        <?php
               foreach($tickets as $ticket):?>
                <?php if($ticket->sla == 1){ ?>
                <tr style='background-color: #e6dfcb;'>
                <?php echo "<td class = 'Title'><a href = '". base_url() ."tickets/display/".$ticket->ticket_id ." '>". $ticket->ticket_title. "</a></td>"; ?>
                <?php echo "<td class = 'Creator'>". $ticket->ticket_creator. "</td>"; ?>
                <?php echo "<td class = 'Date'>". $ticket->ticket_date_reported. "</td>"; ?>
                <?php echo "<td class = 'SLA'>". 'Elevated'. "</td>"; ?>
                <?php if($ticket->Status == 0){
                        echo "<td class = 'Status'>". 'Open'. "</td>"; }
                            elseif($ticket->Status == 1){
                                echo "<td class = 'Status'>". 'Hold'. "</td>"; }
                            elseif($ticket->Status == 2){
                                echo "<td class = 'Status'>". 'Awaiting End User'. "</td>"; }
                            elseif($ticket->Status == 3){
                                echo "<td class = 'Status'>". 'Resolved'. "</td>"; }
                            elseif($ticket->Status == 4){
                                echo "<td class = 'Status'>". 'Closed'. "</td>"; }
                            else{
                                echo "<td class = 'Status'>". 'Unknown'. "</td>"; }?>      
                <td><a class = "btn btn-warning" href="<?php echo base_url();?>tickets/edit/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-edit"></span></a></td> 
                <td><a class = "btn btn-danger" href="<?php echo base_url();?>tickets/delete/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-remove"></span></a></td>        
                </tr>
                <?php }
                elseif($ticket->sla ==2){?>
                <tr style='background-color: #e6cbe6;'>
                <?php echo "<td class = 'Title'><a href = '". base_url() ."tickets/display/".$ticket->ticket_id ." '>". $ticket->ticket_title. "</a></td>"; ?>
                <?php echo "<td class = 'Creator'>". $ticket->ticket_creator. "</td>"; ?>
                <?php echo "<td class = 'Date'>". $ticket->ticket_date_reported. "</td>"; ?>
                <?php echo "<td class = 'SLA'>". 'Contract'. "</td>"; ?>                
                <?php if($ticket->Status == 0){
                        echo "<td class = 'Status'>". 'Open'. "</td>"; }
                            elseif($ticket->Status == 1){
                                echo "<td class = 'Status'>". 'Hold'. "</td>"; }
                            elseif($ticket->Status == 2){
                                echo "<td class = 'Status'>". 'Awaiting End User'. "</td>"; }
                            elseif($ticket->Status == 3){
                                echo "<td class = 'Status'>". 'Resolved'. "</td>"; }
                            elseif($ticket->Status == 4){
                                echo "<td class = 'Status'>". 'Closed'. "</td>"; }
                            else{
                                echo "<td class = 'Status'>". 'Unknown'. "</td>"; }?>
                <td><a class = "btn btn-warning" href="<?php echo base_url();?>tickets/edit/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-edit"></span></a></td>                 
                <td><a class = "btn btn-danger" href="<?php echo base_url();?>tickets/delete/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-remove"></span></a></td>        
                </tr>
                <?php }
                else{?>
                <tr>
                <?php echo "<td class = 'Title'><a href = '". base_url() ."tickets/display/".$ticket->ticket_id ." '>". $ticket->ticket_title. "</a></td>"; ?>
                <?php echo "<td class = 'Creator'>". $ticket->ticket_creator. "</td>"; ?>
                <?php echo "<td class = 'Date'>". $ticket->ticket_date_reported. "</td>"; ?>
                <?php echo "<td class = 'SLA'>". 'Basic'. "</td>"; ?>
                    <?php if($ticket->Status == 0){
                        echo "<td class = 'Status'>". 'Open'. "</td>"; }
                            elseif($ticket->Status == 1){
                                echo "<td class = 'Status'>". 'Hold'. "</td>"; }
                            elseif($ticket->Status == 2){
                                echo "<td class = 'Status'>". 'Awaiting End User'. "</td>"; }
                            elseif($ticket->Status == 3){
                                echo "<td class = 'Status'>". 'Resolved'. "</td>"; }
                            elseif($ticket->Status == 4){
                                echo "<td class = 'Status'>". 'Closed'. "</td>"; }
                            else{
                                echo "<td class = 'Status'>". 'Unknown'. "</td>"; }?>
                <td><a class = "btn btn-warning" href="<?php echo base_url();?>tickets/edit/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-edit"></span></a></td> 
                <td><a class = "btn btn-danger" href="<?php echo base_url();?>tickets/delete/<?php echo$ticket->ticket_id?>"><span class="glyphicon glyphicon-remove"></span></a></td>        
                </tr>
                <?php
                }
                endforeach;        ?>
    </tbody>
</table>
<ul class ="pagination"></ul>
<?php   echo $this->pagination->create_links(); ?>
</div>

我在页脚的JS如下

<script type = "text/javascript" src="<?php echo base_url();?>assets/js/list.min.js"></script>
<script type = "text/javascript">
    var options = { 
      valueNames: ['Title', 'Creator', 'SLA', 'Date','Status']

      page: 3,
pagination: true
    };

    var tickets = new List('tickets', options);

</script>

任何帮助都会很棒!

【问题讨论】:

  • “只有合并时分页才有效” - 那么实际发生了什么?您需要正确解释问题。是不是排序错了?一点也不?搜索没有找到任何东西?发现错误的结果?控制台有错误吗?
  • 合并时。分页正常工作。 List.js 不会按任何方向排序,搜索也不起作用。谢谢。
  • 更正上面的评论^,当结合 list.js 搜索和排序工作时。但仅限于该页面上的项目。即我有 13 条记录,每页 5 条,所以 3 页。 List.js 仅搜索和排序该页面上的记录。不在未显示的页面上。

标签: javascript php html codeigniter list.js


【解决方案1】:

我认为 list.js 需要现有的分页才能工作。然而,list.js 可以做所有事情。所以我删除了我所有的codeigniter pagaition,它工作得很好。

供任何人参考,我的控制器现在看起来如此

 public function index() {



    $user_id = $this->session->userdata('user_id');
    $status =  $this->user_model->get_privileged($user_id);
    $privileged = $status->privileged;

    //calling the get tickets function from ticket model.
   if($privileged == 1){ $data['tickets'] = $this->ticket_model->get_tickets();}
   else {
       $data['tickets'] = $this->ticket_model->get_all_tickets($user_id);





   }
    $data['main_view'] = "tickets/index";


    $this->load->view('layouts/main', $data);



}

而我在页脚的JS如下

<script type = "text/javascript" src="<?php echo base_url();?>assets/js/list.min.js"></script>
<script type = "text/javascript">


        var options = {
          valueNames: ['Title', 'Creator', 'SLA', 'Date','Status'],
        page:6,
        pagination: true
      };

      var tickets = new List('tickets', options);

</script>

【讨论】:

    猜你喜欢
    • 2016-12-16
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多