JavaWeb23(ajax实现分页)

Ajax:局部刷新只刷新局部

Ajax实现分页

1.判断ta所在的页数

//页面载入函数
$(function() {
	//默认显示第一页
	myf('a');
})
//专门控制分页
var pageIndex;
var max;
function myf(type){
	//拿到文本框的值
	var name=$("#gname").val();
	if(type=='a'){
		//首页
		pageIndex=1;
	}
	else if(type=='b'){
		//上一页
		if(pageIndex>1){
			pageIndex--;
		}
		else{
			alert("已经是第一页了");
		}
	}
	else if(type=='c'){
		//下一页
		if(pageIndex<max){
			pageIndex++;
		}
		else{
			alert("已经是末页了");
		}
	}
	else{
		//末页
		pageIndex=max;
	}

2.显示数据

$.post("page.do",{pid:pageIndex,gname:name},function(data){
		//根据属性拿到属性值 根据键拿到值
		//alert(data.pageMax); max
		//alert(data.goodsList); 集合
		//把json格式的字符串解析成js的对象/对象数组
		//var ss=$.parseJSON(data);
		//alert($.type(ss));//array
		max=data.pageMax;
		var sb="<table border=\"1px\" width=\"50%\">";
		sb+="<tr align=\"center\">";
		sb+="<td>商品序号</td>";
		sb+="<td>商品名称</td>";
		sb+="<td>商品图片</td>";
		sb+="</tr>";
		$.each(data.goodsList, function(i, g) {//下标,元素
			sb+="<tr>";
			sb+="<td>"+g.gid+"</td>";
			sb+="<td>"+g.gname+"</td>";
			sb+="<td><img src='"+g.gpath+"'/></td>";
			sb+="</tr>";
		})	
		sb+="</table>";
		//给div赋值
		$("#aa").html(sb);
		//赋值当前页码&最大页码
		$("#xx").html(pageIndex);
		$("#yy").html(max);
	},"json");
}

3.显示当前页码

<div>
			<a href="javascript:myf('a')">首页</a>
			<a href="javascript:myf('b')">上一页</a>
			<a href="javascript:myf('c')">下一页</a>
			<a href="javascript:myf('d')">末页</a>
			【<span id="xx"></span>/<span id="yy"></span>】
		</div>

调到这个界面@WebServlet("/page.do")

//设置编码方式
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=UTF-8");
		
		//获取out
		PrintWriter out=resp.getWriter();
		
		int pageIndex=1;
		int pageSize=2;
		//servlet调用biz层
		IGoodBiz igb=new GoodBiz();
		//接收模糊查询关键字
		String gname=req.getParameter("gname");
		if(gname==null) {
			gname="";//相当于查询全部
		}
		//获取最大页码
		int max=igb.getMax("goods where gname like '%"+gname+"%'", pageSize);
		//接收pid
		String pid=req.getParameter("pid");
		if(pid!=null) {
			pageIndex=Integer.parseInt(pid);//改变页码
		}
		List<News> ls = igb.getAllBypage(pageIndex, pageSize, gname);
		System.out.println(ls);
		//定义一个map集合
		Map<String, Object> mym=new HashMap<>();
		//存元素(一对)
		mym.put("pageMax", max);
		mym.put("goodsList", ls);
		
		String str=JSON.toJSONString(mym);
		System.out.println(str); 
		//把响应输送到客户端=页面
		out.write(str);
		out.flush();
		out.close();
	}

效果图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值