codeigniter分页链接无法正常工作

时间:2012-12-03 10:53:47

标签: codeigniter pagination

我正在使用Codeigniter库分页进行搜索。问题是即使我有2个数据库表的结果,单击下一个或上一个链接只显示一个结果。 代码: 控制器

function search()
{
    $this->load->library('pagination');
    $perpage =1;
    $page = 1;
    $search_content = $this->input->get('con_search');
    $data->search = $this->public_model->search_content($search_content, $perpage);
    $total = count($this->public_model->search_content($search_content));
    $config['base_url'] = current_url()."?con_search=".$search_content;
    $config['total_rows'] = $total;
    $config['per_page'] = 1;
    $config['cur_page'] = $page;
    $config['use_page_numbers'] = TRUE;
    $config['query_string_segment'] = "page";
    $config['display_pages'] =TRUE;
    $config['page_query_string'] = TRUE;
    $config['cur_tag_open'] = '<span class="current">';
    $config['cur_tag_close'] = '</span>';
    $config['next_link'] = 'Next';
    $config['prev_link'] = 'Previous';
    $config['prev_tag_open'] = '<span class="prevtag">';
    $config['prev_tag_close'] = '</span>';
    $config['next_tag_open'] = '<span class="nexttag">';
    $config['next_tag_close'] = '</span>';          
    $this->pagination->initialize($config);

    $data->footer = $this->public_model->get_footer();
    $this->load->helper('text');
    $this->load->view('header', $data);
    $this->load->view('search');
    $this->load->view('footer');
}

模型:

function search_content($search_txt, $perpage = 0)
{
    if($perpage){
        $this->db->limit($perpage);
    }
    $this->db->select('title, description, alias');
    $this->db->where('status', 'yes');
    $this->db->like('description', $search_txt);
    $res = $this->db->get('tbl_content')->result_array();
    return $res;
}

观点:

if($search && is_array($search)) {
    foreach($search as $ind=>$val)
    { 
        $this->db->select('menu_type_id');
        $this->db->where('menu_alias', $val['alias']);
        $res = $this->db->get('tbl_menu')->row_array(); 
        if($res) {
            if($res['menu_type_id'] == 2)
                $url = site_url('page/'.$val['alias']);
            else
                $url = site_url('page/footer/'.$val['alias']);
        }
        ?>
        <div class="box_1">
            <div class="deal_contents">
                <div class="bx_0"><a href="<?php echo $url ?>" style="color:orangered;"><?php echo $val['title'] ?></a></div>
                <div class="bx_1" style="width:670px;"><?php echo strip_tags(character_limiter($val['description'],200)) ?></div>
                <div class="bx_2" style="text-align:right; width:640px;"><a href="<?php echo $url ?>" style="color:orangered;">Read More</a></div>
            </div>
        </div>
    <?php              
    }
    echo $this->pagination->create_links();  
}

提前致谢

1 个答案:

答案 0 :(得分:2)

这样做

    $this->load->library('pagination');
    $limit = 10;

    $total = $this->legend_model->get_legend_count($language_id);

    $config['base_url'] = base_url().'legend/index/';
    $config['total_rows'] = $total;
    $config['per_page'] = $limit;
    $config['uri_segment'] = 3;

    $config['first_link'] = '<< First';
    $config['last_link'] = 'Last >>';
    $config['next_link'] = 'Next ' . '&gt;';
    $config['prev_link'] = '&lt;' . ' Previous';
    $config['num_tag_open'] = '<span class="number">';
    $config['num_tag_close'] = '</span>';

    $config['cur_tag_open'] = '<span class="current"><a href="#">';
    $config['cur_tag_close'] = '</a></span>';

    $this->pagination->initialize($config);
    $data['offset'] = $offset;
    $data['legends'] = $this->legend_model->get_legend($language_id, $limit, $offset);

    $this->template->write('title', 'Legend : Manage Legend');
    $this->template->write_view('content', 'legend/index', $data);
    $this->template->render();