ホームページ  >  記事  >  バックエンド開発  >  PHP は CodeIgniter ページングのサンプルと複数条件のクエリ ソリューションを実装します

PHP は CodeIgniter ページングのサンプルと複数条件のクエリ ソリューションを実装します

墨辰丷
墨辰丷オリジナル
2018-05-22 14:36:052234ブラウズ

この記事では、主に PHP CodeIgniter ページングの例と、複数条件クエリのアイデアの詳細な説明を紹介します。非常に優れており、必要な友人は参照できます。

最近 CI フレームワークを使用するときに、CI ページング クラスを使用しました。以前はページングにフロントエンドを使用していましたが、今回はフレームワークに付属しているものを使用しただけです。

ページには条件フィルタリングフォームがあるため、条件を入力した後、ページがジャンプした後も入力された条件が維持されることが期待されます。しばらく考えた結果、次のコードを思いつきました。

コントローラーコード

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

主要な設定パラメータ

$config[‘page_query_string']

trueに設定すると、URLはこのように「index.php/monitors/warning?per_page=20」になります

【注意】 「per_page」はデフォルトで渡されるクエリ文字列ですが、$config['query_string_segment'] = 'your string' を使用して設定することもできます

私のソリューションでは、もちろん、デフォルト値は TRUE に設定されています。 、関係なく、それも可能です;

$config[‘base_url']

最初に次の状況に設定されている場合、特定のページで条件付きフィルタリングを実行することができますが、ジャンプ後、リフレッシュの問題により条件が消えます。

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

次のメソッドを使用できます。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;//关键配置

ページコードを表示します

ページング要素を配置する必要がある場所にこの文を追加するだけです。$ ページ変数です。コントローラーに保存されます$this->pagination->create_links();

<?php echo $page?>

ページングスタイルを設定します

ここでブートストラップスタイルが使用されます

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

関連する推奨事項:

CI フレームワーク (CodeIgniter ) 操作 Redis ステップ分析

CodeIgniterredisの手順を詳しく解説

CIフレームワーク(CodeIgniter)のredisの操作方法

以上がPHP は CodeIgniter ページングのサンプルと複数条件のクエリ ソリューションを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。