Home  >  Article  >  Backend Development  >  PHP implements CodeIgniter paging examples and multi-condition query solutions

PHP implements CodeIgniter paging examples and multi-condition query solutions

墨辰丷
墨辰丷Original
2018-05-22 14:36:052278browse

This article mainly introduces PHP CodeIgniter paging examples and detailed explanations of multi-condition query ideas. It is very good and has reference value. Friends in need can refer to it

When using the CI framework recently, use I have installed the paging class of CI. I used to use the front-end paging class. This time I simply used the one that comes with the framework. I might as well record it in my forgetful mind.

Because there is a conditional filtering form on the page, the desired effect is that after entering the conditions, the entered conditions can be maintained after the page jump. After thinking about it for a while, I came up with the following code.

controller code

class Monitors extends CI_Controller {
public function warning(){
    $config= array();
    $config['per_page'] = 15; //每页显示的数据数
    $current_page = intval($this->input->get("per_page")); //获取当前分页页码数
   
 $status=$this->input->get("filter-status",TRUE);
 $level=$this->input->get('filter-level',TRUE);
 $timestamp=$this->input->get('filter-timestamp',TRUE);
    $all = $this->monitors_m->getAllData($current_page,$config['per_page'],$status,$timestamp,$level);
   //这里返回的有总条数和具体的数据,根据自己的情况略加修改即可
 $data['allevent'] = $all['content'];
 $config['total_rows']   = $all['count'];//总条数
    $config['num_links'] = 3;//页码连接数
 $config['use_page_numbers'] = TRUE; 
 $config['page_query_strings'] = TRUE;//关键配置
 $config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//关键配置
 $this->load->library('pagination');//加载ci pagination类
 $this->pagination->initialize($config);
 $data['page'] = $this->pagination->create_links();//关键代码
 $this->load->view("monitors_v",$data);
}

Key configuration parameters

$config[‘page_query_string']

If If set to true, the url will be "index.php/monitors/warning?per_page=20" like this

[Note] "per_page" is the query string passed by default, but you can also use $config[ 'query_string_segment'] = 'your string' to configure

In my solution, it is set to TRUE. Of course, TRUE is the default value, and you can leave it alone;

$config[‘base_url']

When it is initially set to the following situation, it is possible to perform conditional filtering on a certain page, but after the jump, the conditions are no longer due to refresh problems.

$config['base_url'] = base_url().'index.php/monitors/warning;

Use the following method, roar hoho

$status=$this->input->get("filter-status",TRUE);
$level=$this->input->get('filter-level',TRUE);
$timestamp=$this->input->get('filter-timestamp',TRUE);
$config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//关键配置

view page The code

is just one sentence. Just add this sentence where you need to place the paging element. The $page variable here is stored in the controller. $this->pagination->create_links ();

<?php echo $page?>

Set paging style

The bootstrap style is used here

$config[&#39;first_link&#39;]   = "<<";//首页
$config[&#39;prev_link&#39;]   = "<";//上一页
$config[&#39;next_link&#39;]   = ">";//下一页
$config[&#39;last_link&#39;]   = ">>";//尾页
$config[&#39;full_tag_open&#39;] = &#39;<ul class="pagination pagination-split">&#39;; 
$config[&#39;full_tag_close&#39;] = &#39;</ul>&#39;; 
$config[&#39;first_tag_open&#39;] = &#39;<li>&#39;;//第一个链接的起始标签。
$config[&#39;first_tag_close&#39;] = &#39;</li>&#39;;//第一个链接的结束标签。
$config[&#39;next_tag_open&#39;] = &#39;<li>&#39;;//下一页链接的起始标签。
$config[&#39;next_tag_close&#39;] = &#39;</li>&#39;;//下一页链接的结束标签。
$config[&#39;prev_tag_open&#39;] = &#39;<li>&#39;;//上一页链接的起始标签。
$config[&#39;prev_tag_close&#39;] = &#39;</li>&#39;;//上一页链接的结束标签。
$config[&#39;cur_tag_open&#39;] = &#39;<li class="active"><a>&#39;;
$config[&#39;cur_tag_close&#39;] = &#39;</a></li>&#39;;//当前页链接的结束标签。
$config[&#39;num_tag_open&#39;] = &#39;<li>&#39;;//数字链接的起始标签。
$config[&#39;num_tag_close&#39;] = &#39;</li>&#39;;//数字链接的结束标签。

Related recommendations:

CI framework (CodeIgniter) operation redis step analysis

CodeIgniterDetailed explanation of the steps to use redis

CI framework (CodeIgniter) method of operating redis

The above is the detailed content of PHP implements CodeIgniter paging examples and multi-condition query solutions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn