Maison  >  Article  >  développement back-end  >  Comment implémenter la pagination PHP CodeIgniter et la requête multi-conditions

Comment implémenter la pagination PHP CodeIgniter et la requête multi-conditions

不言
不言original
2018-06-14 14:17:471437parcourir

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

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos du framework CI pour implémenter la pagination ajax et tout sélectionner, inverser la sélection, désélectionner et supprimer par lots le code

Comment utiliser le framework CI pour réaliser la séparation front-end et back-end du framework

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