thinkphp+ajax 实现点击加载更多数据
https://blog.csdn.net/a898712940/article/details/78545599?utm_source=blogxgwz8
适用范围:thinkphp3.2和thinkphp5.0
php代码:
public function myorder_list(Request $request){
$uid = $this->uid;
$where = array(
'uid' => $uid,
);
$page = $this->request->param('page') ? $this->request->param('page') : 1; //获取请求的页数
$num = 10;//请求条数
$order_list = db('shop_order')
->alias('so')
->join(config('database.prefix').'shop_order_goods sog','so.id = sog.orderid')
->field('so.ordersn,so.pay_price,sog.id,sog.orderid,sog.goodsid,sog.goods_name,sog.goods_price,sog.thumb,sog.total')
->where($where)
->order("so.createtime", 'desc')
->page($page,$num)
->select();
foreach ($order_list as $k=>$v){
$order_list[$k]['total'] = db('member_video')->where('orderid',$v['id'])->count();
}
//判断是否为ajax请求,获取更多数据
$count = count($order_list);
if($this->request->isPost()){
if($count<$num){//判断是否到尾页
$order_list[]['id']=0;//到尾页返回0
}
return json($order_list);//将数组转成json格式返回
exit;//中断后面的display()
}
$this->assign('order_list',$order_list);
$this->assign(['num'=>$num,'count'=>$count]);
return $this->view->fetch();
}
html代码:
<ul class="orderlist-wrap" >
{if !empty($order_list)}
{volist name="order_list" id="vo"}
<li class="orderlist">
<a class="orderlist-a" href="">
<img src="{if !empty($vo.thumb)} {$vo.thumb} {else} /uploads/videos/20171109/1627f7f77cefa595bc0ea4b95bdd8f30.jpg {/if}" />
<span class="orderlist-txt-l">
<span class="orderlist-txt-ls1">{$vo.ordersn}</span>
<span class="orderlist-txt-ls2">
<i>数量:{$vo.total}</i>
<i>总价:<span class="iconfont13 icon-rmb"></span>{$vo.pay_price}</i>
</span>
</span>
</a>
<span class="orderlist-txt-r">
<span class="orderlist-txt-r1">待评价</span>
<a class="orderlist-txt-r2">评价</a>
</span>
</li>
{/volist}
{else/}
<div class="tomore" id="nocell" style="text-align: center;line-height: .55rem;" >暂无订单记录...</div>
{/if}
</ul>
{if $count egt $num}
<div class="tomore" id="getmore" style="text-align: center;line-height: .55rem;color: #0061ff;">查看更多<i class="iconfont12 icon-gengduo1"></i></div>
{/if} <!-- 请求的页数-->
<input type="hidden" name="" id="page" value="2">
js代码:
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
var page = $("#page").val(); //从第二页开始获取数据
$("#getmore").click(function(){
$.ajax({
type: "post",
dataType: "json",
url: '{:url("m/member/myorder_list")}',
data: {page:page},
success: function(data) {
//console.log(data);
var str = "";//定义变量保存内容
$.each(data,function(index,array){
if (array['id']){
str += '<li class="orderlist">'+
'<a class="orderlist-a" href="">'+
'<img src="'+array['thumb']+'"/>'+
'<span class="orderlist-txt-l">'+
'<span class="orderlist-txt-ls1">'+array['goods_name']+'</span>'
+'<span class="orderlist-txt-ls2">'
+'<i>数量:'+array['total']+'</i>'
+'<i>总价:<span class="iconfont13 icon-rmb"></span>'+array['goods_price']*array['total']+'</i>'+
'</span>'+
'</span>'+
'</a>'+
'<span class="orderlist-txt-r">'+
'<span class="orderlist-txt-r1">'+'待评价'+'</span>'+
'<a class="orderlist-txt-r2">'+'评价'+'</a>'+
'</span>'+
'</li>';
}else{
$("#getmore").html("没有更多内容了..");
}
});
$(".orderlist-wrap").append(str); //把HTML添加到容器
var pageval = page++;//页数+1
$("#page").val(pageval);
}
});
});
</script>
thinkphp+ajax 实现点击加载更多数据的更多相关文章
- ajax点击加载更多数据图片(预加载)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jQuery+php+Ajax文章列表点击加载更多功能
jQuery+php+Ajax实现的一个简单实用的文章列表点击加载更多功能,点击加载更多按钮,文章列表加载更多数据,加载中有loading动画效果. js部分: <script type=&qu ...
- PHP+Ajax点击加载更多列表数据实例
一款简单实用的PHP+Ajax点击加载更多列表数据实例,实现原理:通过“更多”按钮向服务端发送Ajax请求,PHP根据分页参数查询将最新的几条记录,数据以JSON形式返回,前台Query解析JSON数 ...
- PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载
这个效果好,速度快,只能点击更多加载,不能滚动自动加载 一.HTML部分 <div id="more"> <div class="single_item ...
- Yii 1开发日记 -- Ajax实现点击加载下一页
功能实现:先输出一页的内容,然后点击加载下一页,如图 1.控制器中 /** * 消费记录:列出用户购买章节的记录 */ public function actionMyPayHis() { //点击加 ...
- Spring+Hibernate+struts2+JPA 注解+跨域//完成手机端点击加载更多 下拉加载更多
一.使用IDEA新建一个maven项目(student) 1.1.0编写pom文件,添加项目所需要的包 <?xml version="1.0" encoding=" ...
- Jquery点击加载更多
一.点击加载更多有点像分页获取数据类似,下面是本人写的一个简单的小例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- tableView中的“点击加载更多”点击不到
假设当前的tableView是_tableView,则可以这样设置 _tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0); 该属性用于设置当 ...
随机推荐
- Taro框架---左滑动删除
index.js import Taro, { Component } from '@tarojs/taro' import { View,ScrollView } from '@tarojs/com ...
- (转)第04节:Fabric.js用路径画不规则图形
在Canvas上画方形.圆形.三角形都是很容易的,只要调用fabric对应的方法就可以了,但这些都是规则的图形,如果你想画一个不规则的图形,这时候你可以用fabric.js提供的路径绘图方法.所谓路径 ...
- C#字符串、字节数组和内存流间的相互转换 - IT浪潮之巅
定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串=>比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes(&q ...
- Sequelize
连接数据库 const DB = require('sequelize') // 连接数据库 const connect = new DB('xjg', 'root', 'root', { host: ...
- selenium基础(参数化脚本)
参数化脚本 什么是参数化 参数化就是用包含多组数据的参数列表,使之替换脚本中的响应常量值,这样,在脚本运行的时候,就会使用参数表中的数据来代替脚本中的常量值 由于参数表中包含了多组数据,所以执行用例时 ...
- spark2.0在IDE运行的问题
spark2.0搭建到服务器跑很方便,但是本地跑和之前1.6还是有点区别,鼓捣了一点到半夜2点多总算能跑了.. 遇到的问题 1.idea千万要用file---setting-----plugins的s ...
- JavaScript特效源码(6、页面特效一)
1.页面全屏 页面全屏显示[ALT+F4关闭][共1步][新弹出窗口并以全屏幕方式显示] ====1.将以下代码加入HTML的<body></body>之间: <form ...
- activeMQ消息队列安装配置
1. 下载 到官网下载最新版本,有windows版本和linux版本的. http://activemq.apache.org/download.html 2. windows下部署 Activ ...
- 关于str的打印格式
实际上一般的打印格式应该是这样的: %[(keyname)][flags][width][.precision]typecode (1) keyname: 用于打印Dict类型时做索引; (2) fl ...
- thinkphp 视图定义
视图定义 视图通常是指数据库的视图,视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的 ...