douya2433 2015-10-14 17:39
浏览 42

Codeigniter - 如何将选定的页码传递给url并相应地显示

I am playing with pagination in codeigniter first time so having some difficulties so need help or guidance.

Here is my code which i am using and it is working perfect but getting pagination number like this:

Page 1: Getting 2 number in url (http://localhost/projectname/campaigns/2)
Page 2: Getting 6 number in url (http://localhost/projectname/campaigns/6)

I don't want to pass number like above behavior but expecting like this way:

Page 1: Set 1 number in url (http://localhost/projectname/campaigns/1)
Page 2: Set 2 number in url (http://localhost/projectname/campaigns/2)

Any idea how to do with codeigniter framework?

Pagination Code:

campaigns_list.php(controller)

public function __construct(){
    parent::__construct();
    $this->load->model('Insta_campaigns_list_model');
    $this->load->library('pagination');
}

public function index($offset=0){
    IsNotLoggedIn(); // Check if a user is not logged in

    // For SEO
    $data['meta_title'] = 'Instagrammer Campaigns | YourCreatrs';
    $data['meta_descripton'] = '';
    $data['meta_keywords'] = '';

    // Pagination code for campaigns code start
    $config['total_rows'] = $this->Insta_campaigns_list_model->TotalCampaigns();

    // Check status value is number
    $status = $this->uri->segment(3);
    if(!ctype_digit($status)){
        $status = "1";
    }

    $config['base_url'] = base_url()."instagrammer/campaigns/".$status;
    $config['per_page'] = 3;
    $config['uri_segment'] = '4';

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

    $config['first_link'] = '« First';
    $config['first_tag_open'] = '<li class="prev page">';
    $config['first_tag_close'] = '</li>';

    $config['last_link'] = 'Last »';
    $config['last_tag_open'] = '<li class="next page">';
    $config['last_tag_close'] = '</li>';

    $config['next_link'] = 'Next →';
    $config['next_tag_open'] = '<li class="next page">';
    $config['next_tag_close'] = '</li>';

    $config['prev_link'] = '← Previous';
    $config['prev_tag_open'] = '<li class="prev page">';
    $config['prev_tag_close'] = '</li>';

    $config['cur_tag_open'] = '<li class="active"><a href="">';
    $config['cur_tag_close'] = '</a></li>';

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

    $this->pagination->initialize($config);
    $query = $this->Insta_campaigns_list_model->GetCampaigns(3, $this->uri->segment(4));

    $data['Campaigns'] = null;

    if($query){
        $data['Campaigns'] =  $query;
    }
    // Pagination code for campaigns code end

    $this->load->view('include/instagrammer_header', $data);
    $this->load->view('instagrammer/campaigns_list', $data);
    $this->load->view('include/instagrammer_footer');
}

insta_campaigns_list_model.php(models)

function GetCampaigns($limit=null, $offset=NULL){

    $AllUserData = $this->session->all_userdata();
    if(isset($AllUserData['LoginSession']['id']) && !empty($AllUserData['LoginSession']['id'])){
        $UserId = $AllUserData['LoginSession']['id'];
    }else{
        $UserId = "0";
    }

    if(isset($AllUserData['LoginSession']['UserType']) && !empty($AllUserData['LoginSession']['UserType'])){
        $UserType = $AllUserData['LoginSession']['UserType'];
    }else{
        $UserType = "";
    }

    // Check status value is number
    $status = $this->uri->segment(3);
    if(!ctype_digit($status)){
        $status = "2";
    }

    if($status == "2"){
        // Invites records
        $this->db->select('campaign.*, invite_instagrammer.campaign_id as campaign_ids_from_invite, invite_instagrammer.invite_id');
        $this->db->from('invite_instagrammer');
        $this->db->join('campaign', 'invite_instagrammer.campaign_id = campaign.campaign_id', 'left');
        $where = "instagrammer_id =$UserId AND invite_instagrammer.is_accepted =0";
        $this->db->where($where);
        $this->db->order_by("invite_instagrammer.campaign_id", "desc");
        $this->db->limit($limit, $offset);
        $query = $this->db->get();

        return $query->result();
    }else if($status == "1"){
        // Active records
        $this->db->select('campaign.*, invite_instagrammer.campaign_id as campaign_ids_from_invite, invite_instagrammer.invite_id');
        $this->db->from('invite_instagrammer');
        $this->db->join('campaign', 'invite_instagrammer.campaign_id = campaign.campaign_id', 'left');
        $where = "instagrammer_id =$UserId AND invite_instagrammer.is_accepted =1 AND campaign.end_date >= CURDATE() AND campaign.status =1";
        $this->db->where($where);
        $this->db->order_by("invite_instagrammer.campaign_id", "desc");
        $this->db->limit($limit, $offset);
        $query = $this->db->get();

        return $query->result();
    }else{
        // Closed records
        $this->db->select("*");
        $this->db->from('campaign');
        $where = "end_date < CURDATE() AND start_date != '0000-00-00 00:00:00' AND status =1";
        $this->db->where($where);
        $this->db->order_by("campaign_id", "desc");
        $this->db->limit($limit, $offset);
        $query = $this->db->get();

        return $query->result();
    }

}

function TotalCampaigns(){

    $AllUserData = $this->session->all_userdata();
    if(isset($AllUserData['LoginSession']['id']) && !empty($AllUserData['LoginSession']['id'])){
        $UserId = $AllUserData['LoginSession']['id'];
    }else{
        $UserId = "0";
    }

    if(isset($AllUserData['LoginSession']['UserType']) && !empty($AllUserData['LoginSession']['UserType'])){
        $UserType = $AllUserData['LoginSession']['UserType'];
    }else{
        $UserType = "";
    }

    // Check status value is number
    $status = $this->uri->segment(3);
    if(!ctype_digit($status)){
        $status = "2";
    }

    if($status == "2"){
        // Invites records
        $this->db->select('campaign.*, invite_instagrammer.campaign_id as campaign_ids_from_invite, invite_instagrammer.invite_id');
        $this->db->from('invite_instagrammer');
        $this->db->join('campaign', 'invite_instagrammer.campaign_id = campaign.campaign_id', 'left');
        $where = "instagrammer_id =$UserId AND invite_instagrammer.is_accepted =0";
        $this->db->where($where);

        return $this->db->count_all_results();
    }else if($status == "1"){
        // Active records
        $this->db->select('campaign.*, invite_instagrammer.campaign_id as campaign_ids_from_invite, invite_instagrammer.invite_id');
        $this->db->from('invite_instagrammer');
        $this->db->join('campaign', 'invite_instagrammer.campaign_id = campaign.campaign_id', 'left');
        $where = "instagrammer_id =$UserId AND invite_instagrammer.is_accepted =1 AND campaign.end_date >= CURDATE() AND campaign.status =1";
        $this->db->where($where);

        return $this->db->count_all_results();
    }else{
        // Closed records
        $this->db->select('*');
        $this->db->from('campaign');
        $where = "end_date < CURDATE() AND start_date != '0000-00-00 00:00:00' AND status =1";
        $this->db->where($where);

        return $this->db->count_all_results();
    }

}

campaigns.php(view)

<?php
if(is_array($Campaigns) && count($Campaigns)):
    for($i=0; $i<count($Campaigns); $i++):
?>
<div class="col-md-4">
    <div  class="campaign-details">
        <div class="campaign-top-img">
            <?php if(file_exists($FileLocation)): ?>
                <img src="<?php echo base_url();?>public/images/campaign-images/thumbs/<?php echo $CampaignImage; ?>" alt="<?php echo $CampaignName; ?>">
            <?php else: ?>
                <img src="<?php echo base_url();?>public/images/no-image.png" alt="">
            <?php endif; ?>
            <div class="campaign-details-inner">
                <h3><?php echo $CampaignName; ?></h3>
                <small>27/09/2015</small> <span>$<?php echo $BudgetSpend; ?></span>
            </div>
        </div>
    </div>
</div>
<?php
    endfor;
else:
    ?>
    <div class="container-fluid no-results">
        <div class="row">
            <div class="col-md-12">
                <h2>Nothing Found</h2>
                <br />
                <span>Sorry, but nothing matched your search criteria. Please try again with some different<br /> keyword. </span>
            </div>
        </div>
    </div>
    <?php
endif;
?>
<?php if(count($Campaigns) != "0"): ?>
<div class="navigation-bar">
    <?php echo $this->pagination->create_links(); ?>
</div>
<?php endif; ?>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值