首页 > 解决方案 > Codeigniter 分页不适用于 jquery 选项卡

问题描述

我正在学习 codeigniter 框架,但我遇到了一个问题。我已经动态显示了 mysql 表中的数据,并且我有多个数据类别。所以我使用 ajax cdn 选项卡按类别显示数据。

我想为每个类别创建动态分页,但它会在每个类别分页中加载默认页面。

这是我的带有分页配置的视图文件

<div class="col-md-12 Tabbing">
    <h2>Portfolio</h2>
    <ul class="nav TabbingNav">
        <?php if (!empty($categoryList)) {
        foreach ($categoryList as $key => $category) {?>
        <li class="TabbingLi"><a data-toggle="tab"  href="#category<?php echo $category->id; ?>" id="li_category<?php echo $category->id; ?>" class="TabbingA"> <?php echo ($category->id == 1) ? '<i class="fa fa-eye"></i>' : '' ?><?php echo $category->title; ?></a></li>
        <?php }
        }?>
    </ul>
    <div class="tab-content clearfix">
        <?php foreach ($categoryList as $key => $category) {
        ?>
        <div id="category<?php echo $category->id ?>" class="tab-pane fade">
            <div class="CustomeRow">
                <?php $i = 1;
                $this->load->model('Portfolio_Model');
                $config = array();
                $config['full_tag_open'] = "<ul class='pagination'>";
                $config['full_tag_close'] = '</ul>';
                $config['num_tag_open'] = '<li>';
                $config['num_tag_close'] = '</li>';
                $config['cur_tag_open'] = '<li class="active"><a href="#">';
                $config['cur_tag_close'] = '</a></li>';
                $config['prev_tag_open'] = '<li>';
                $config['prev_tag_close'] = '</li>';
                $config['first_tag_open'] = '<li>';
                $config['first_tag_close'] = '</li>';
                $config['last_tag_open'] = '<li>';
                $config['last_tag_close'] = '</li>';
                $config['prev_link'] = '<i class="fa fa-angle-left"></i>';
                $config['prev_tag_open'] = '<li>';
                $config['prev_tag_close'] = '</li>';
                $config['next_link'] = '<i class="fa fa-angle-right"></i>';
                $config['next_tag_open'] = '<li>';
                $config['next_tag_close'] = '</li>';
                $config["base_url"] = base_url() . "portfolio";
                $config["total_rows"] = $this->Portfolio_Model->get_count($category->id);
                $config["per_page"] = 9;
                $config["uri_segment"] = 2;
                $this->pagination->initialize($config);
                $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
                $links = $this->pagination->create_links();
                $portfolioByCategory = $this->Portfolio_Model->getPortfolios($config["per_page"], $page, $category->id);
                if (!empty($portfolioByCategory)) {
                foreach ($portfolioByCategory as $key => $portfolio) {
                ?>
                <div class="col-md-4" data-toggle="modal" data-target="#portfolio<?php echo $portfolio->id . "_category" . $category->id ?>">
                    <div class="PortfolioBox">
                        <img src="<?php echo base_url() . "assets/uploads/" . $portfolio->image ?>" alt="" class="img-fluid">
                        <i class="fa fa-eye"></i>
                    </div>
                    <a data-toggle="modal" data-target="#portfolio<?php echo $portfolio->id . "_category" . $category->id ?>" class="Title"><?php echo $portfolio->title ?></a>
                </div>
                <div class="modal fade scrollbar-dusty-grass square thin" id="portfolio<?php echo $portfolio->id . "_category" . $category->id ?>">
                    <div class="modal-dialog modal-dialog-centered">
                        <div class="modal-content">
                            <!-- Modal Header -->
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal"><i class="fa fa-close"></i></button>
                            </div>
                            <div class="modal-body">
                                <div class="row">
                                    <div class="col-md-7">
                                        <img src="<?php echo base_url() . "assets/uploads/" . $portfolio->image ?>" alt="" class="img-fluid">
                                    </div>
                                    <div class="col-md-5 d-flex align-items-start justify-content-start flex-column">
                                        <div class="SecOne">
                                            <h2><?php echo $portfolio->title ?></h2>
                                            <ul class="d-flex align-items-start justify-content-start flex-column">
                                                <li>Skill : <?php echo $portfolio->skill ?></li>
                                            </ul>
                                        </div>
                                        <div class="SecTwo">
                                            <h2>About <?php echo $portfolio->title ?></h2>
                                            <p><?php echo $portfolio->description ?></p>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <?php
                if ($i % 3 == 0) {
            echo "</div><div class='CustomeRow'>";
            }
            $i++;}?>
            <p><?php echo $links; ?></p>
            <?php }?>
        </div>
    </div>
    <?php }?>
</div>
</div>

这是我的 routes.php

$route['portfolio/(:num)'] = 'portfolio';

我想将 category_id 作为获取参数传递,但是当我使用?category=$category->id第二页更改 base_url 时,会采用这样的 url:

localhost/project/portfolio?category=1/9

它只是刷新页面,第二页的数据没有显示。对于每个类别,我的网址是:

localhost/project/portfolio#category1(2,3,4,5,6,7)

请有人帮助我实现这种动态分页。

标签: phpcodeigniterpaginationtabs

解决方案


推荐阅读