//此案例为TP5 框架 mvc三层所作!只供参考
//C层 登录成功 调用模型层
public function login(){ $name=input("get.name"); $pwd=input("get.pwd"); if(empty($name) || empty($pwd)){ $this->error("账号密码不能为空"); } //实例化模型层 $res=new Login(); $list=$res->index($name,$pwd); if($list){ Session::set("name",$list['name']); $this->success("登录成功","show"); }else{ $this->error("账号或密码错误"); } }
//m层 进行时间的分配
public function getgoods(){ //查询数据 $data=$this->select()->toArray(); //循环遍历 foreach($data as $k =>$v){ $time=$v['end_time']-time(); //有效的小时 $hour=floor($time/3600); //有效分钟 $min=floor(($time-$hour*3600)/60); //有效秒 $second=$time-$hour*3600-$min*60; //合并到原数组 $data[$k]['hour']=$hour; $data[$k]['min']=$min; $data[$k]['second']=$second; } return $data; } //根据id查询库存 public function cun($id){ return $this->where('id',$id)->find()->toArray(); } //登录成功跳到展示页面 显示秒杀剩余时间 public function show(){ $goods=new Goods(); $data=$goods->getgoods(); // print_r($data); return view("show",['data'=>$data]); }
V层展示秒杀页面
{foreach name="data" id="v"} <ul style="list-style-type: none;border: 2px red solid;margin-top: 15px;width: 400px"> <li>名称:{$v['name']}</li> <li>价格:{$v['price']}</li> <li>库存:{$v['count']}</li> <li><span id="{$v['id']}">活动剩余时间:{$v['hour']}小时{$v['min']}分钟{$v['second']}秒</span></li> <input type="button" value="立即秒杀" class="but" id="{$v.id}"> </ul> {/foreach}
(js方法)
//获取id跳动 c层,判断商品库存,排队人数
$(".but").click(function () { var sid=$(this).attr("id"); $.get( "{:url('chart/show_do')}?id="+sid, function (data) { if(data==1){ alert("商品已卖完!!!"); }else if(data==2){ alert("请您稍后,正在排队中"); }else{ alert("秒杀成功,请下单"); location.href="{:url('chart/goods')}"; } } ) })
、
//实现每秒执行一次 ,实现秒杀倒计时
$(document).ready(function () { window.setInterval(function () { var sp=$("#sp").val(); $.get( "{:url('chart/datajson')}", function (data) { var res=JSON.parse(data) $.each(res,function (k,v) { var str=''; str += "活动剩余时间:"+v.hour+"时"+v.min+"分"+v.second+"秒"; $("#"+v.id).text(str); }) }) },1000)