1. 程式人生 > >Thinkphp5之ajax分頁實現_paginate()引數詳細

Thinkphp5之ajax分頁實現_paginate()引數詳細

Thinkphp5 做資料搜尋需要帶關鍵詞分頁,如何將查詢條件帶入到分頁中,本文詳細介紹Thinkphp5 分頁帶引數

一、基本使用方法:


$list = Db::name('user')->where('status',1)->paginate(10);

二、檢視thinkphp5 paginate()函式

paginate()函式可以帶三個引數:

$listRows  每頁數量 陣列表示配置引數

$simple   是否簡潔模式或者總記錄數 如果為true,那麼分頁的就是隻有上一頁和下一頁

$config   配置引數 具體可以自己傳入或者在配置檔案中配置

$config 引數具體配置

引數
描述
list_rows
每頁數量
page
當前頁
path
url路徑
query
url額外引數
fragment
url錨點
var_page
分頁變數
type
分頁類名

三、解決方案:

$list = Db::name('user')->where('status',1)->paginate(10,false,
[
    'type'     => 'Bootstrap',
    'var_page' => 'page',
    //使用jqery 無重新整理分頁
   'path'=>'javascript:AjaxPage([PAGE]);'
   //第一種方法,使用陣列方式傳入引數
     'query' => ['keyword'=>$keyword],
// 第二種方法,使用函式助手傳入引數
// 'query' => request()->param(),
 ]

);

使用時在html模板頁相應位置放入{$list->render()}

<!-- 分頁 -->
<div class="row">
    <div id="result">
        {$list->render()}
</div>
</div>
此時頁面裡會生成一個頁碼介面.

雖然方法很簡單,但是存在一個問題,每次點選頁面都要重新整理,使用者體驗很不好,所以要在tp5原有分頁類的基礎上加一個ajax操作,直接上程式碼:

模板jquery_ajax程式碼:

<script>
       var 
AjaxPage = function(page){$.ajax({ url:'http://xxx/public/index.php/back/topic/ajaxList', type:'post', dataType:'json', data: {apage:page}, success:function(data){ //console.log(data) $("#result").html(data.page); } }); } </script>

控制器controller\Topic.php

   //顯示分類管理介面
public function listAction(){
        $list = model('Topic')->paginate(10,false,[
           'type'     => 'Bootstrap',
           'var_page' => 'page',
           'path'=>'javascript:AjaxPage([PAGE]);',
           //使用函式助手傳入引數
'query' => request()->param(),
        ]);
//        $res = $mem->getList();
$this->assign('list',$list);
        return $this->fetch('list');
    }
   public function ajaxListAction(){
      $page = request()->param('apage');
      if (!empty($page)) {
         $rel = model('topic')->paginate(10,false,[
            'type'     => 'Bootstrap',
            'var_page' => 'page',
            'page' => $page,
            'path'=>'javascript:AjaxPage([PAGE]);',
]);
         $page = $rel->render();
      }
      return json(['list'=>$rel,'page'=>$page]);
   }
因為使用了模型方法,還要定義一個模型類model\Topic.php
<?php
/**
 * Created by PhpStorm.
 * User: houzhyan
 * mail: [email protected]
 * Locator: http://www.phpclass.top
 * Date: 2017/10/23
 * Time: 11:58
 */namespace app\back\model;

use think\Model;

class Topic extends Model {

}

測試結果:


相關推薦

Thinkphp5ajax實現_paginate()引數詳細

Thinkphp5 做資料搜尋需要帶關鍵詞分頁,如何將查詢條件帶入到分頁中,本文詳細介紹Thinkphp5 分頁帶引數 一、基本使用方法: $list = Db::name('user')->where('status',1)->paginate(10);二

php中laravel框架ajax

控制器中的程式碼 public function index(){ $list = DB::table('rezhi')->paginate(1); return view('Rizhi_xianshi',['list'=>$list]);

通用編程快速代碼實現

快速分頁對於程序技術人員處理一些比較多的數據時,有時候一頁放不下,那麽這個時候往往要用到分頁顯示,就像平常我們翻看有一些新聞資訊一樣,有下一頁,下二頁等等,那麽今天跟大家分享的就是如何快速實現分頁技術,下面就進入到正題吧。   代碼實現部分:<!DOCTYPE html><html lang

【TP3.2】TP3.2下實現ajax(原創+親測可用)

條件 func edit syn model 多條 ade ges var 一,寫在最開始:ajax分頁的原理,是利用了js的ajax執行請求,獲取分頁list和分頁page 【代碼塊】,去替換頁面顯示數據的【代碼塊】 技術:js的ajax + TP3.2的fet

使用pagination外掛實現ajax

1.html頁面引入jq和js外掛 <script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <s

ajax前端實現

本來不打算重複造輪子的,網上也已經有了很多關於前端分頁的框架,外掛等等,但是還是打算寫出來是因為前段時間有一個功能模組需要用到前端分頁,然後找了很多框架,以及外掛,發現其內容非常的複雜或者有的乾脆就是不能用的,一氣之下就準備自己動手寫一個,下面貼出程式碼。。 到自己寫的時候其實發現,這個還是挺簡單的,邏輯程

thinkphp5內建功能第二無法拿到引數

參考文件:https://blog.csdn.net/woaifen3344/article/details/55803816 核心: $userlist = model('User')->where("name like '%{$name}%'")->paginate(

ajax實現功能

 整體思路:將頁號傳遞到後臺PHP程式,PHP程式根據頁號,從資料表中查詢對應的內容,再返回給前端的ajax程式,最後顯示. 引用ajax分頁外掛:是一個基於jQuery的分頁外掛-pagination。     &

AndroidTab標籤的實現方法一-----可滑動的Tab的3種方式

package com.swordy.demo.android.fragment; import java.util.Random; import android.os.Bundle; import android.support.v4.app.Fragment; import android.su

AndroidTab標籤的實現方法一-----美化TabHost(四)

安卓預設的TabHost樣式是比較樸素的,可以對它進行樣式美化。對佈局進行美化的時候需要在佈局檔案中體現出來。TabHost標籤應由一個TabWidget和一個FrameLayout組成。其中TabWidget定義了標籤的屬性,而frameLayout定義了標籤的內容。

jquery page.js 實現ajax

呼叫的是豆瓣的api <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title&g

jQuery外掛 dataTable Ajax功能實現

jQuery 的外掛 dataTables 是一個優秀的表格外掛,提供了針對表格的排序、瀏覽器分頁、伺服器分頁、篩選、格式化等功能。需要可以到 dataTables 的網站 http://www.datatables.net/ 下載這個指令碼庫。 在網頁開發過程中,我們

作業系統實現記憶體機制.虛擬空間

這裡我們將把頁目錄表放在0x100000處.頁表也挨著頁目錄表放在0x101000處(第二個頁表.當然在此之前應該把實體記憶體給算出來.這裡可以使用bios中斷來獲取實體記憶體%include "boot.inc" section loader vstart=loader_base_addr ;-------

ajax無重新整理實現 帶例項呦

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePat

EasyUI基礎入門Pagination()

比例 tab 由於 名稱 script idt 分隔符 jquery show 前言 對於一些企業級的應用來說(非站點),頁面上最為基本的內容也就是表格和form了。對於類似於ERP這類系統來說數據記錄比較大,前端表格展示的時候必需得實現分頁功能了。恰巧

Spring實現PageImpl<T>類

sea equals public ini ack format contain link 部分 Spring框架中PageImpl<T>類的源碼如下: /* * Copyright 2008-2013 the original author or aut

ajax

text adf als comm else click time cnblogs for <!--分頁--> <script type="text/javascript"> //第幾頁 var page = 1; //每頁顯示的條數 var nu

java真假

分頁 真假 .com 至少 ref lec from kdt baidu 真分頁(要的是什麽範圍的記錄在數據庫查的時候就只查這幾條記錄):select s.* from (select *,row_number() over(order by SLoginId) as ro

THINKPHP ajax示例

them 寫代碼 連接 rep contain php return 路徑 body 先把框架的page類改造一下 路徑在ThinkPHP/Library/Think/Page.class.php文件 添加一個方法 ajax_show 代碼如下 <?php

淺談jQuery Pagination Ajax 插件的使用

tco next 列表 知識 scrip var 如果 現在 ces 插件介紹 此插件是jQuery的ajax分頁插件。分頁切換時無刷新也無延遲,因為是一次性加載的。如果你用到此插件作分頁的時候,涉及到的數據量大,建議不要使用此插件,因為加載慢會導致用戶體驗不好! 插件使用