0

我有分页和codeigniter的问题。我有一个来自女巫的 quick_searh 视图,我正在将信息提交给索引控制器函数,并在那里设置分页并调用 quick_search 方法来获取我想要的数据。它只是行不通。我花了超过 5 个小时重写这些方法,甚至从 quick_search 开始,然后传递给 index 函数,但没有任何效果,请帮忙。

    public function index(){

    // search parameters config
    $lawyer_name = $this->input->post('lawyer_name');
    $kanzlei = $this->input->post('kanzlei');
    $area_of_expertise = $this->input->post('area_of_expertise');
    $post_code = $this->input->post('post_code');
    $city = $this->input->post('city');

    $result = $this->quick_search(
        $this->uri->segment(3),
        $lawyer_name,
        $kanzlei,
        $area_of_expertise,
        $post_code,
        $city);

    if(isset($result)){
        // pagination config
        $this->load->library('pagination');
        $this->load->library('table');

        $config['total_rows'] = count($result);
        $config['base_url'] = 'http://localhost/anwalt/index.php/search/index';
        $config['per_page'] = 5;
        $config['num_links'] = 5;

        $this->pagination->initialize($config);

        $data['search_result_array'] = $result;
        $data['main_content'] = 'pages/quick_search_results';
        $this->load->view('templates/home_body_content', $data);
    }
}

quick_search 函数:

    public function quick_search($offset, $lawyer_name, $kanzlei, $area_of_expertise, $post_code, $city){

    // no input in the quick search
    if( empty($lawyer_name) && empty($kanzlei) && empty($area_of_expertise)
        && empty($post_code) && empty($city))
    {
        $result = 'nothing';

    } else {

        $this->load->model('quick_search_model');
        $result = $this->quick_search_model->get_search_results(
            $offset,
            $lawyer_name,
            $kanzlei,
            $area_of_expertise,
            $post_code,
            $city
            );
    }

    return $result;
}

sql是这样的:

$sql = "SELECT users.user_id, users.canonical_name, first_name, last_name, city, phone_number, kanzlei
    from users
    inner join user_normal_aos
    on users.user_id = user_normal_aos.user_id
    inner join normal_areas_of_expertise
    on user_normal_aos.normal_areas_of_expertise_id = normal_areas_of_expertise.normal_areas_of_expertise_id
    where ".implode(" AND ", $where);

    if(empty($offset)){
        $offset = 0;
    }

    $sql = $sql." LIMIT ".$offset.", 4";

数据已显示,但我没有看到其中的分页 .. 甚至当我想更改用于分段的 url 时,它说我没有任何数据。

视图是这样的:

<h1>Quick search results</h1>
<?php 
if($search_result_array == "nothing"){
    echo "<h3>You havent inputed anything</h3>";    
} else {
    echo $this->table->generate($search_result_array);
}
echo $this->pagination->create_links();
4

2 回答 2

1

根据您的搜索变量,您可以使用它:

$lawyer_name = $this->input->post('lawyer_name');
$kanzlei = $this->input->post('kanzlei');
$area_of_expertise = $this->input->post('area_of_expertise');
$post_code = $this->input->post('post_code');
$city = $this->input->post('city');

/*pagination start*/
$this->load->library('pagination');
$config['base_url']         = base_url().'index.php/index/lawyer/'.$lawyer_name.'/kanzlei/'.$kanzlei.'/area_of_expertise/'.$area_of_expertise.'/post_code/'.$city.'/page/';
$config['total_rows']       = $this->model->count_all_results();    ###implement this function to count all the vodeos as per the search variables, just use the same function as "quick_search" but without the limit clause
$config['per_page']         = count($result);;
$config['uri_segment']      = 10;
$config['next_link']        = 'Next';
$config['prev_link']        = 'Prev';
$config['cur_tag_open']     = '<span class="active_page">';
$config['cur_tag_close']    = '</span>';
$this->pagination->initialize($config);
/*pagination end*/
于 2013-07-17T10:03:39.853 回答
0

你不能使用 $this->pagination->create_links(); 在视图中的方法。

使用 $data['pagination'] = $this->pagination->create_links(); 在加载视图之前在控制器中并在视图中回显 $pagination

希望这会帮助你。

于 2013-07-17T10:43:04.393 回答