如何用ajax写分页查询(以留言信息为例)-----2017-05-17

要写分页,首先你得清楚,一页你想显示多少条信息?如何计算总共显示的页数?

先说一下思路:

(1)从数据库读取数据,以chenai表为例,读取所有留言信息。并能够实现输入发送者,可以查询该发送者的留言总数。

(2)计算分页信息,此处,以每页显示5条信息为例。分页列表(如图)以当前页为中心,向前显示2条,向后显示2条。

(3)给每个分页列表添加对应的点击事件。

(4)能够实现分页后,添加查询分页功能。

现实效果图:

第一步:引入 jquery文件和bootstrap文件。(因为表格和分页均是用的bootstrap)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--引入bootstrap的css文件-->
		<link type="text/css" rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css"  />
		<!--引入js包-->
		<script src="../jquery-3.2.0.js"></script>
		<!--引入bootstrap的js文件-->
	    <script src="../bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
	    <style type="text/css">
	    	/*给当前页添加特殊样式*/
	    .dqy{
	    		font-weight: bolder;
	    	}
	    </style>
	</head>

第二步:从数据库读取数据

	<body>
		<h1 style="text-align: center;">分页查询</h1>
		<div><input type="text" id="send"/><input type="button" id="chaxun" value="查询"/></div>
	<!--用table显示留言信息-->
		<table class="table table-striped">
  <thead>
    <tr>
      <th>代号</th>
      <th>发送者</th>
      <th>接收者</th>
      <th>时间</th>
      <th>留言信息</th>
    </tr>
  </thead>
  <tbody id="nr">
  </tbody>
</table>
<!--造一个div显示分页信息-->
<div>
	<ul class="pagination xinxi">
</ul>
</div>
</body>
</html>

第三步:写分页信息

(1)造方法

<script type="text/javascript">
	//定义当前页,默认为1,不能为0
	var page = 1;
	//定义每一页显示多少条留言信息
	var num = 5;
	//造一个方法加载数据
	Load();
	//造一个方法加载分页信息

LoadFenYe();

  (2)写方法

function Load(){
	var send=$("#send").val();

		$.ajax({
			url:"chuli.php",
			data:{page:page,num:num,sender:send},
			type:"POST",
			dataType:"JSON",
			success:function(data){
				//因为要返回json数据,所以更改DB.class.php类文件,使其返回json数据
				var str ="";
				//json遍历方式
				for(var k in data)
//				alert(data[k].Ids);
				{
					str = str+"<tr><td>"+data[k].Ids+"</td><td>"+data[k].Sender+"</td><td>"+data[k].Receiver+"</td><td>"+data[k].Times+"</td><td>"+data[k].Comment+"</td></tr>";
				}
				$("#nr").html(str);
			}
		});
	}
	//加载分页的方法
  function LoadFenYe(){
  	//定义一个变量,用来放所有的分页信息,默认为空
  	var s ="";
  	var send=$("#send").val();
	//加载上一页
  	s = "<span id=‘prev‘>前一页</span>";
	//加载中间的数字
    var zts=0;  //总的留言条数为0条
    $.ajax({
    	async:false,   //必须取消异步,不然总条数为0,总页数也为0
    	url:"tiaoshu-cl.php",
    	data:{sender:send},
		type:"POST",
    	dataType:"TEXT",
    	success:function(data){
			zts=data;
    	}
    });
 	//总页数为总条数除以每一页显示的条数,如果为小数则向上取整
     var zys = Math.ceil(zts/num);
 	//已经知道总的页数后,开始显示分页信息
     page = parseInt(page);     //转一下整型
 	// 当前页开始,向前显示2页,向后显示两页
     for (var i = page-2;i < page+3;i++)
     {
     	//注意i的范围
     	if(i>0 && i<=zys){
     		//如果i等于当前页,样式会不一样
     		if (i==page){
     			s=s+"<span ys=‘"+i+"‘ class=‘dqy‘>"+i+"</span>";    //当前页
     		}
     		else{
     			s=s+"<span ys=‘"+i+"‘ class=‘qty‘>"+i+"</span>";   //其他页
     		}
     	}
     }
	//加载后一页
	s = s +"<span id=‘next‘>后一页</span>";
	s = "<li>"+s+"</li>";
	$(".xinxi").html(s);

  

第四步:添加点击事件

//给前一页加点击事件
	$("#prev").click(function(){
		page = parseInt(page);
		if(page>1)
		{
			page--;
		}
		//重新加载数据
		Load();
		LoadFenYe();
	})
	//给中间页面添加点击事件
	$(".qty").click(function(){
		page=parseInt($(this).attr("ys")); //取自定义的属性值
		Load();
		LoadFenYe();
	})
	//给后一页加点击事件
	$("#next").click(function(){
		page = parseInt(page);
		if(page<zys)
		{
			page++;
		}
		//重新加载数据
		Load();
	    LoadFenYe();
	})}   //这是分页方法的另一半花括号

  

第五步:实现查询分页

	$("#chaxun").click(function(){
		Load();
	    LoadFenYe();
	})

  

chuli.php页面

<?php
$page=$_POST["page"];
$num = $_POST["num"];
$sender = $_POST["sender"];
require "../DB.class.php";
$db = new DB();
$tgs = ($page-1)*$num;//跳过的条数
$sql = "select * from chenai where Sender like ‘%{$sender}%‘ limit {$tgs},{$num}";
echo $db->jsonquery($sql);
?>

  

tiaoshu-cl.php页面

<?php
$sender = $_POST["sender"];
require "../DB.class.php";
$db = new DB();
$sql = "select count(*) from chenai where Sender like ‘%{$sender}%‘";
echo $db->strquery($sql);
?>

  

时间: 2024-12-21 06:48:03

如何用ajax写分页查询(以留言信息为例)-----2017-05-17的相关文章

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

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

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_

springMVC手写分页查询

package com.neuedu.java7.baen; public class Page { private int currentPage = 1; //当前页数 private int totalPages; //总页数 private int total; //记录总行数 private int pageSize = 5; //每页记录行数 private int nextPage; //下一页 private int prefPage; //前一页 public Page(){

框架学习日志(4):如何通过Ajax进行分页查询并绑定数据?

需求设定 1.在页面中通过Ajax发送请求至程序后端对User表进行分页查询,将数据展示至页面上: 2.要求显示字段:主键.姓名.年龄.出生年份.性别.职位: 3.需要统计总数.可上下翻页.可指定页跳转: User表 Position字段,int型,值范围0-5,依次工作职位:实习生.普通职工.资深职工.团队组长.部门经理.公司经理. 以上为情景设定,接下来进入代码实战. 新建类库,搭建开发流程 User表属于账户管理模块,所以我们将新建的类库取名为Account. 分别在各层建立如下类库.文件

EasyUi+Spring Data 实现按条件分页查询

Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己开发 Repository 只需要继承 JpaRepository 接口CrudRepository save. delete. deteleAll. findAll. findOne. countPagingAndSortingRepositoryfindAll(Sort) 基于排序的查询. fi

分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

         分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse+jdbc+mysql的小程序. 连接的数据库名称为db_database11,属性如下: 1.创建名为com.pmf.bean的包,包中是名为Product的类,用于封装商品信息. 全部代码如下: package com.pmf.bean; /** * 商品 * */

Oracle ROWNUM用法和分页查询总结

********************************************************************************************************** [转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 Oracle分页查询格式(二):http://yangtingkun.itpub.ne

JDBC在Java Web中的应用——分页查询

分页查询 通过JDBC实现分页查询的方法有很多种,而且不同的数据库机制也提供了不同的分页方式,在这里介绍两种非常典型的分页方法. 通过ResultSet的光标实现分页 通过ResultSet的光标实现分页,优点是在各种数据库上通用,缺点是占用大量资源,不适合数据量大的情况. 2. 通过数据库机制进行分页 很多数据库自身都提供了分页机制,如SQL Server中提供的top关键字,MySQL数据库中提供的limit关键字,它们都可以设置数据返回的记录数. 通过各种数据库的分页机制实现分页查询,其优

android分页查询获取系统联系人信息

package com.example.yqqmobilesafe.ContactProvider; import java.util.ArrayList; import java.util.List; import android.R.integer; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.ContactsCo