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 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
php构造函数的继承方法
Feb 09 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
详解json在php中的应用
Sep 30 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显示时间常用方法小结
2015/06/05 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
JsDom 编程小结
2011/08/09 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
python传递参数方式小结
2015/04/17 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Python求解正态分布置信区间教程
2019/11/20 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
一套.net面试题及答案
2016/11/02 面试题
小学三年级学生评语
2014/04/22 职场文书
大二学习计划书范文
2014/04/27 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
Redis实现一个账号只能登录一个设备
2022/04/19 Redis