php结合ajax实现手机发红包的案例


Posted in PHP onOctober 13, 2016

PHP Ajax有许多的功能都会用到它小编今天就有使用PHP Ajax实现的一个抢红包功能,下面我们来看一个PHP Ajax手机发红包的程序例子,具体如下所示。

PHP发红包基本流程:当输入完红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,且每个红包金额不等。也就是每个人领取的红包金额要不同,并且所有红包金额总额等于总金额。

php发红包实现原理:

设定总金额为10元,有N个人随机领取:
N=1 第一个
则红包金额=X元;
N=2 第二个
为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数
第二个红包=10-第一个红包金额;
N=3 第三个
红包1=0.01至9.99之间的某个随机数
红包2=0.01至(10-红包1-0.01)的某个随机数
红包3=10-红包1-红包2
……

于是我们得到一个规律,在分配当前红包金额时,先预留剩余红白所需最少金额,然后在0.01至总金额-预留金额间取随机数,得到的随机数就是当前红包分配的金额。

实际应用中,程序先将红包金额分配好,即发红包时,红包个数以及每个红包的金额都分配好了,那么用户来抢红包时,我们随机给用户返回一个红包即可。

jquery代码:

$(function() { 
 $("button").click(function() { 
 $.ajax({ 
 type: 'POST', 
 url: 'bao.php', 
 dataType: 'json', 
 beforeSend: function() { 
 $("#result").html('正在分配红包'); 
 }, 
 success: function(json) { 
 if (json.msg == 1) { 
  var str = ''; 
  var res = json.res; 
  $.each(res, 
  function(index, array) { 
  str = '<p>第<span>' array['i'] '</span>个红包,
  金额<span>' array['money'] '</span>元,余额<span>' 
  array['total'] '元</span></p>'; 
  }); 
  $("#result").html(str); 
 } else { 
  $("#result").html('数据出错!'); 
 } 
 } 
 }); 
 }); 
});

PHP代码:bao.php

$total=20;//红包总金额 
$num=10;// 分成10个红包,支持10人随机领取 
$min=0.01;//每个人最少能收到0.01元 
 
for ($i=1;$i<$num;$i ) 
{ 
 $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限 
 $money=mt_rand($min*100,$safe_total*100)/100; 
 $total=$total-$money; 
 
 echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 '; 
} 
echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';

效果如图所示:

php结合ajax实现手机发红包的案例

PHP 相关文章推荐
多重?l件?合查?(二)
Oct 09 PHP
几个php应用技巧
Mar 27 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
解析php防止form重复提交的方法
Jul 01 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
Laravel如何同时连接多个数据库详解
Aug 13 PHP
php加密解密字符串示例
Oct 13 #PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 #PHP
php is_writable判断文件是否可写实例代码
Oct 13 #PHP
基于PHP制作验证码
Oct 12 #PHP
实现PHP搜索加分页
Oct 12 #PHP
如何使用PHP给图片加水印
Oct 12 #PHP
php版微信数据统计接口用法示例
Oct 12 #PHP
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
php中cookie的使用方法
2014/03/29 PHP
php简单实现MVC
2015/02/05 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
年度评优评先方案
2014/06/03 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
机动车交通事故协议书
2015/01/29 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript