Maison >développement back-end >tutoriel php >PHP implémente des exemples de pagination CodeIgniter et des solutions de requêtes multi-conditions

PHP implémente des exemples de pagination CodeIgniter et des solutions de requêtes multi-conditions

墨辰丷
墨辰丷original
2018-05-22 14:36:052300parcourir

Cet article présente principalement des exemples de pagination PHP CodeIgniter et des explications détaillées sur les idées de requêtes multi-conditions. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer

Lorsqu'ils utilisent récemment le framework CI. , utilisation J'ai introduit la classe de pagination de CI. J'utilisais la classe de pagination frontale Cette fois, j'ai simplement utilisé celle fournie avec le framework, autant l'enregistrer dans mon esprit oublieux.

Comme il existe un formulaire de filtrage conditionnel sur la page, l'effet souhaité est qu'après avoir saisi les conditions, les conditions saisies peuvent être conservées après les sauts de page. Après y avoir réfléchi un moment, j'ai trouvé le code suivant.

Code du contrôleur

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

Paramètres de configuration clés

$config[‘page_query_string']

Si elle est définie sur true, l'url sera "index.php/monitors/warning?per_page=20" comme ceci

[Note] "per_page" est la chaîne de requête transmise par défaut, mais elle peut utilisez également $config['query_string_segment'] = 'your string' pour configurer

Dans ma solution, il est défini sur TRUE. Bien sûr, TRUE est la valeur par défaut et elle peut être ignorée

$config[‘base_url']

Lorsqu'il est initialement réglé sur la situation suivante, il est possible de filtrer les conditions sur une certaine page, mais après le saut, les conditions disparaissent en raison pour rafraîchir les problèmes.

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

Utilisez la méthode suivante, hohoho

$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;//关键配置

Afficher la page code

Juste une phrase, ajoutez simplement cette phrase là où vous devez placer l'élément de pagination. La variable $page ici est stockée dans le contrôleur

$this->pagination->create_links();

<.>
<?php echo $page?>

Définir le style de pagination

Le style bootstrap est utilisé ici

$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;;//数字链接的结束标签。

Recommandations associées :

Analyse du framework CI (

CodeIgniter) des étapes de fonctionnement de Redis

CodeIgniterExplication détaillée des étapes à suivre utiliser la méthode redis

CI framework (

CodeIgniter) pour faire fonctionner redis

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn