ajax实现分页

使用ajax分页原理:
第一步:做一个表格
第二步:封装两个方法。
第三步:新建个负责显示页面。
第四步:做一个纯PHP处理页面处理要显示页的所有数据

首先使用一张数据比较多的数据库中的表格:

首页面加载后首先导入所有数据,并显示前20条数据。

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title>Document</title>
	<script src="jquery-1.11.2.min.js"></script>
</head>
<body>
<div>
	<input type="text" id="key" />
	<input type="button" value="查询" id="chaxun" />
</div>
<table width="100%" border="1" bordercolordark="0" bordercolorlight="0">
	<tr>
		<td>代号</td>
		<td>名称</td>
		<td>父级代号</td>
	</tr>
	<tbody id="neirong"><!--显示内容-->

	</tbody>
</table>
<div id="xinxi">

</div>
</body>
<script type="text/javascript">

	var page = 1;//定个变量,当前要显示的页

	Load();//加载数据

	function Load()
	{
		var key = $("#key").val();//查询条件。用户输入的内容
		$.ajax({
			url:"chuli.php",
			data: {
            page: page,
            key: key
        },//传2个参数一当前页2关键字也就是查询条件
			type:"POST",
			dataType:"JSON",
			success: function(data){//匿名函数
					var str = "";//这个将来要放表格显示的
					for(var k in data)//通过K可以获得每一条数据
					{//加载数据完成
						str +="<tr><td>"+data[k].AreaCode+"</td><td>"+data[k].AreaName+"</td><td>"+data[k].ParentAreaCode+"</td></tr>";//要显示的内容,代号、名称父级代号
					}
					$("#neirong").html(str);
			}
		});
	}

</script>
</html>

chuli.php文件:

这里引入了一个php的类文件:

DBDA.class.php

<?php
class DBDA//类名
{	//下面是成员 变量
	public $host= "localhost";//服务器,本机地址
	public $uid = "root";//用户名
	public $pwd = "511108";//用户密码
	public $dbname = "text";//数据库名称

//通过上面的变量来访问数据库。在访问数据库的时候就可以直接造对象
//成员方法。执行SQL语句的方法
public function Query($sql,$type=1)
{
	$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);

	$r = $db->query($sql);//判断是不是查询是查询就返回一个二维数组

	if($type==1)//如果type等于1属于查询语句,如果查询语句就要返回一个二维数组
	{
		return $r->fetch_all();//从结果集读取所有数据。因为是二维数组所以就直接return返回
	}
	else
	{
		return $r;//如果不是查询,其他语句就直接return $r
	}
}

//返回字符串的方法
	public function StrQuery($sql,$type=1)
	{
		$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
		$r = $db->query($sql);

		if($type==1)
		{
			$attr = $r->fetch_all();
			$str = "";
			foreach($attr as $v)
			{
				$str .= implode("^",$v)."|";
			}

			return substr($str,0,strlen($str)-1);

		}
		else
		{
			return $r;
		}
	}

//返回JSON
	function JSONQuery($sql,$type=1)
	{
		$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
		$r = $db->query($sql);

		if($type==1)
		{
		    return json_encode($r->fetch_all(MYSQLI_ASSOC));
		}
		else
		{
			return $r;
		}
	}
}

chuli.php:处理

<?php

include("DBDA.class.php");
$db = new DBDA();

//把上个页面的2个值传过来
$page = $_POST["page"];//当前页
$key = $_POST["key"];//条件,关键字
$num = 20;//定义,一页里多少条数据,
$tiaoshu = ($page-1)*$num;//$tiaoshu跳过多少条($page-1)*$num现在$num是20条
//写$SQL语句
$sql = "select * from chinastates where areaname like ‘%{$key}%‘ limit {$tiaoshu},{$num}";//根据关键字查like ‘%{$tiaojian}%‘。
echo $db->JSONQuery($sql);

首页里的分页处理:fenye.php

<?php
include("DBDA.class.php");
$db = new DBDA();

$key = $_POST["key"];
$num = 20;

$sql = "select count(*) from chinastates where areaname like ‘%{$key}%‘";

$zts = $db->StrQuery($sql);

echo ceil($zts/$num);

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title>Document</title>

	<script src="jquery-1.11.2.min.js"></script>
<style type="text/css">
.dangqian{ background-color:#69F}
</style>
</head>
<body>
<div>
	<input type="text" id="key" />
	<input type="button" value="查询" id="chaxun" />
</div>
<table width="50%" border="1" bordercolordark="0" bordercolorlight="0">
	<tr>
		<td>代号</td>
		<td>名称</td>
		<td>父级代号</td>
	</tr>
	<tbody id="neirong"><!--显示内容-->

	</tbody>
</table>
<div id="fenyexinxi">

</div>
</body>
<script type="text/javascript">

	var page = 1;//定个变量,当前要显示的页

	Load();//加载数据
	Loadfenyexinxi();//加载分页信息
	//查询
	$("#chaxun").click(function(){
		page = 1;
		Load();//加载数据
		Loadfenyexinxi();//加载分页信息
	})
	function Load()
	{
		var key = $("#key").val();//查询条件。用户输入的内容
		$.ajax({
			url:"chuli.php",
			data: {
            page: page,
            key: key
        },//传2个参数一当前页2关键字也就是查询条件
			type:"POST",
			dataType:"JSON",
			success: function(data){//匿名函数
					var str = "";//这个将来要放表格显示的
					for(var k in data)//通过K可以获得每一条数据
					{//加载数据完成
						str +="<tr><td>"+data[k].AreaCode+"</td><td>"+data[k].AreaName+"</td><td>"+data[k].ParentAreaCode+"</td></tr>";//要显示的内容,代号、名称父级代号
					}
					$("#neirong").html(str);
			}
		});
	}
function Loadfenyexinxi()//分页信息
{
	var str = "";
	var minys = 1;//最小页数
	var maxys = 1;//最大页数
	var key = $("#key").val();//取关键字用于传到zys页面用

	//查总页数
	$.ajax({
		async:false,//同步的
		type:"POST",
		url:"fenye.php",
		data:{key:key},
		dataType:"TEXT",
		success:function(d){
				maxys = d;
		}
	});
	str += "<span>总共:"+maxys+"页</span>  ";
	str += "<span id=‘prev‘>上一页</span>";
	//循环做列表,当前页减1,当前页加3
	for(var i=page-2;i<page+3;i++)
	{
		if(i>=minys && i<=maxys)
		{
			if(i==page)
			{
				str += "<span class=‘dangqian‘ bs=‘"+i+"‘>"+i+"</span>  ";
			}
			else
			{
				str += "<span class=‘list‘ bs=‘"+i+"‘>"+i+"</span>  ";
			}

		}
	}

	str += "<span id=‘next‘>下一页</span>";
	$("#fenyexinxi").html(str);
	//给上一页添加点击事件
	$("#prev").click(function(){
			page = page-1;
			if(page<1)
			{
				page=1;
			}
			Load();//加载数据
			Loadfenyexinxi();//加载分页信息
		})
	//给下一页加点击事件
	$("#next").click(function(){
			page = page+1;
			if(page>maxys)
			{
				page=maxys;
			}
			Load();//加载数据
			Loadfenyexinxi();//加载分页信息
		})
	//给中间的列表加事件
	$(".list").click(function(){
			page = parseInt($(this).attr("bs"));//字符串变整数parseInt
			Load();//加载数据
			Loadfenyexinxi();//加载分页信息
		})

}

</script>
</html>

时间: 2024-10-25 02:53:25

ajax实现分页的相关文章

PHP+JQUEY+AJAX实现分页

PHP+JQUEY+AJAX实现分页 HTML CSS #list{width:680px; height:530px; margin:2px auto; position:relative} #list ul li{float:left;width:220px; height:260px; margin:2px} #list ul li img{width:220px; height:220px} #list ul li p{line-height:22px} #pagecount{width

PHP中使用jQuery+Ajax实现分页查询多功能操作

1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Ajax做分页</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> <script src="Ajax_

TP框架调用ajax 以及分页的引用

thinkphp使用ajax和之前使用ajax的方法一样,不同点在于之前的ajax中的url指向了一个页面,而thinkphp里面的url需要指向一个操作方法. 一.thinkphp使用ajax返回数据 1.先在Admin\Controller\MainController.class.php里面写一个方法 public function testajax()//ajax测试方法 { $this->show(); } 2.在Admin\View\Main文件夹里面建对应的显示页面testajax

Jquery的DataTable插件 AJAX 服务器分页的的学习心得(java版)

首先得先引入对应的js 1.jquery.min.js  首先导入 2. File:        jquery.dataTables.min.js Version:     1.9.4     这是我使用的版本 这是  jsp 页面 关键的table  代码 <table id="fuck" class="table table-bordered data-table"> <thead> <tr> <span style=

MVC 简单的AJAX异步分页+MYSQL

留资料,以后学习用 1.后台 public ActionResult textPage() { return View(); } [HttpPost] public ActionResult textPage(FormCollection collection) { //实例化对象 BLL.pc_dialog bll_pcdialog = new BLL.pc_dialog(); Model.pc_dialog model_pcdialog = new Model.pc_dialog(); //

Ajax写分页查询(实现不刷新页面)

要求: 获取数据库中大量的信息显示在页面上,必然要使用到分页查询: 若不使用Ajax,而是用其他的方法,肯定是要刷新页面的,用户体检很不好, 所以最好使用Ajax的方法写分页查询: 1.先来找一张数据很多的表吧! 一张简单的表 代码,引入jquery包: <script src="jquery-1.11.2.min.js"></script> 写一张表格,显示我们的代号跟名称: <table class="table table-striped&

使用AJAX实现分页

Fenye.html <!DOCTYPE html> <html> <head> <title>分页</title> </head> <script type="text/javascript"> /** * AJAX * 1.创建ajax对象 * 2.建立连接 * 3.判断ajax准备状态及状态码 * 4.发送请求 */ function showList(pageNow){ //创建ajax对象 v

ajax做分页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Ajax异步刷新分页功能-MySQL

此为JQuerty的代码 /** 全局变量 */ var index = 1; var totalPage = 0; /** 分页窗体事件 */ $(function () { /**取从Servlect中传到JSP页面的总条数信息 给全局变量totalPage 赋值 * 下为JSP页面中显示当前页和总页数代码 * <span id="index" >1</span>\<span id="totalPage" >${request