当前位置: 首页 > 知识库问答 >
问题:

CodeIgniter分页,在函数之间发送参数

卜瀚漠
2023-03-14

我有一个问题与分页和codeigniter。我有一个快速搜索视图,我正在将信息提交给索引控制器函数,并在那里设置分页并调用快速搜索方法来获取我想要的数据。它就是不起作用。我花了5个多小时重写这些方法,甚至从快速搜索开始,然后传递到索引函数,但没有任何效果,请帮助。

    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);
    }
}

快速搜索功能:

    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();

共有2个答案

何甫
2023-03-14

您不能使用$this-

使用$data['pagination']=$this-

希望这对你有帮助。

鲜于致远
2023-03-14

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

$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*/
 类似资料:
  • 我正在做一个基本的投票系统,其中我有2个HTML页面(都在同一个域上)。在第1页上有两个按钮,用户可以从中选择一个。第2页我想在一个图形中显示所选的选项。目标是,如果在第1页上点击了一个按钮,第2页上的数据就会自动更新,而不会刷新整个页面。 为了做到这一点,我尝试将单击的选项保存在LocalStorage中。我通过使用编写变量来获得数据。但是,当我得到数据时,我必须手动刷新第2页,以便结果显示。有

  • 问题内容: 分页时有什么方法可以保留我的GET参数。 我的问题是我有几个不同的网址,即 我应该如何在分页类中创建指向页面上具有不同页码的页面的链接,但仍然保留网址的其他部分? 问题答案: 简而言之,您只需解析URL,然后在最后添加参数,或者如果参数已经存在,则将其替换。 此示例代码需要用于和的PHP HTTP模块 。后者可以替换为第一个,如果没有安装模块,则可以使用PHP用户空间实现。 另一种选择

  • 我想发送一个函数作为参数。当我在另一个函数中调用它“this”和其他类似“HttpClient”的函数时,“urlBase”是未定义的。 我在互联网上搜索并找到了关于bind()属性的信息,但如果现在定义了“this”,其他属性仍然没有定义。所以我把所有需要的属性都放在bind()函数中,但对我来说很糟糕。。。 这是我的服务功能,它确实工作得很好。 这是我想给它另一个函数作为参数的函数: 以及之前

  • 问题内容: 您好,我正在尝试在两个片段(armarFragment到cocinaFragment)之间发送数据,但是我不知道该怎么做,因为这两个片段都在同一个Activity(tabsActivity)中,后者实现了一个pagerAdaptar以显示不同片段。在这里,我把我的代码。谢谢。 tabsActivity.java(在内部可以找到类pagerAdapter)。 armarFregment.

  • 我有一个主干模型,我正试图销毁它,但没有随请求发送任何参数,因此服务器返回一个“Delete 404 not found”错误。 我承认我的结构有点奇怪,因为我正在根据项目是否已经在列表中创建/销毁它们。 销毁前

  • 嘿,伙计们,我想为我正在开发的这个论坛创建一个重置密码......不管怎样,我遵循了一堆指南,尝试了许多版本的你会看到的,这是错误最少的版本......我还是不知道出了什么问题,我需要你的帮助。 这就是结果: