php分页封装(10行代码搞定分页,优化版本1)

26 篇文章 0 订阅
21 篇文章 0 订阅

模板html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		a{
			cursor: pointer;
			color: red;
		}
	</style>
</head>
<body>
	<table>
		<thead>
			<td>编号</td>
			<td>用户名</td>
			<td>邮箱</td>
			<td>手机号</td>
			<td>操作</td>
		</thead>
		<tbody id="tby">
			
		</tbody>
		<tfoot>
			<td><a id="first">首页</a></td>
			<td><a id="pre">上一页</a></td>
			<td><a id="next">下一页</a></td>
			<td><a id="last">尾页</a></td>
		</tfoot>
	</table>
	
	<script src="js/jquery.min.js"></script>
	<script src="js/fenye.js"></script>
	<script>
		//前端需要改动的地方只有下面几行代码。后端php有3个地方需要改(已标注):
		//前端需要改的是:init(...)中的参数
		//php后端需要改的是:
		//(1)init.php中有两处
		//(2)fenye.php中需指定具体字段
		first.οnclick=function(){
			firstPage();
		}
		pre.οnclick=function(){
			prePage();
		}
		next.οnclick=function(){
			nextPage();
		}
		last.οnclick=function(){
			lastPage();
		}
		window.οnlοad=function(){
			//参数1:元素id
			//参数2:每页显示数量
			//参数3:是否显示操作  1:显示 0:不显示
			//参数4:除操作列之外的列数
			//显示操作的部分 0:不显示 1:显示编辑 2:显示删除
			init('tby',3,1,3,4);
			firstPage();
		}
	</script>
</body>
</html>

注:需引入Jquery

fenye.js:

//JQ作用域
//还可以加排序 动态选择每页页数(这里是我后面要改进的,不用管)
var curPage=1;
var totalPage=1;
var pageSize=4;
var ysId='',Num2=1,Num3=2;
var lNum=4;
function firstPage() {loadPage(1);}
function prePage() {loadPage(curPage-1);}
function nextPage() {loadPage(curPage+1);}
function lastPage() {loadPage(totalPage);}
function init(id,num1,num2,num3,ln){
	ysId=id;
	pageSize=num1;
	Num2=num2;
	Num3=num3;
	lNum=ln;
}

function loadPage(page){
	$.ajax({
		type:'get',
		url:'php/fenye.php',
		data:`page=${page}&pageSize=${pageSize}`
	}).then(data=>{
		data=JSON.parse(data);
		var pageInfo=JSON.parse(data[data.length-1]);
		var html="";
		for(var i=0;i<data.length-1;i++){
			html+=`<tr>`;
			for(var j=0;j<lNum;j++)
				   html+=`<td>${data[i][j]}</td>`;

			if(Num2==1&&Num3==3){
				html+=`<td><a>编辑<a>|<a οnclick='deleteRow(${data[i][0]})'>删除<a></td>
				   </tr>`;
			}else if(Num2==1&&Num3==2){
				html+=`<td><a οnclick='deleteRow(${data[i][0]})'>删除<a></td>
				   </tr>`;
			}else if(Num2==1&&Num3==1){
				html+=`<td><a>编辑<a></td>
				   </tr>`;
			}else{
				html+=`</tr>`;
			}
		}
		$('#'+ysId).html(html);
		curPage=pageInfo.currentPage;
		totalPage=pageInfo.totalPage;
		pageSize=pageInfo.pageSize;
	});
}

function deleteRow(rid){
	var dFlag=confirm("确定删除吗?");
	if(dFlag){
		$.ajax({
			type:'get',
			url:'php/deleterow.php',
			data:`rid=${rid}`
		}).then(()=>{
			loadPage(curPage);
		})
	}
}




注:编辑这里没去做对应功能,需要自己加代码。

init.php:

<?php 

	$conn=mysqli_connect('127.0.0.1','root','','fenye',3306);//需要修改1:连接信息
	mysqli_query($conn,'SET NAMES UTF8');
	$table='fy_users';  //需要修改2:表名
?>
fenye.php

<?php 

	require_once('init.php');
	@$currentPage=$_REQUEST['page'];
	@$pageSize=$_REQUEST['pageSize'];
	if($pageSize==''||$pageSize==null){
		$pageSize=4;
	}

	$sql="SELECT count(*) FROM $table";
	$result=mysqli_query($conn,$sql);
	$rowCount=mysqli_fetch_row($result)[0];

	$totalPage = ceil($rowCount/$pageSize);
	if($currentPage > $totalPage){  
        $currentPage = $totalPage;  
    }  
    if($currentPage < 1){  
        $currentPage = 1;  
    } 

	$start=($currentPage-1)*$pageSize;
	//需要修改3:字段(注:第一个字段必须为唯一标识的字段,这样编辑和删除功能才可以正常使用)
	$sql="SELECT uid,uname,email,phone FROM $table LIMIT $start,$pageSize";
	$result=mysqli_query($conn,$sql);
	$arr=mysqli_fetch_all($result);
	$lastStr = "{\"currentPage\":$currentPage,\"totalPage\":$totalPage,\"pageSize\":$pageSize}";
	Array_push($arr,$lastStr);

	echo json_encode($arr);
?>

-----------------------------------------------

效果图:


数据库字段:




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值