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 相关文章推荐
php中看实例学正则表达式
Dec 25 PHP
php print EOF实现方法
May 21 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
thinkPHP下ueditor的使用方法详解
Dec 26 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
php中实现字符串翻转的方法
Feb 22 PHP
php 中的closure用法详解
Jun 12 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生成excel列序号代码实例
2013/12/24 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
jquery实现图片放大镜效果
2020/12/23 jQuery
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python简单分割文件的方法
2015/07/30 Python
Python生成随机密码的方法
2017/06/16 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
详解Anaconda 的安装教程
2020/09/23 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
铲车司机岗位职责
2014/03/15 职场文书
三项教育活动实施方案
2014/03/30 职场文书
活动总结怎么写
2014/04/28 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
python代码实现扫码关注公众号登录的实战
2021/11/01 Python