经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
PHP+Ajax手机移动端发红包实例
来源:cnblogs  作者:mrlime  时间:2019/9/25 9:29:19  对本文有异议

基本流程:当输入完红包数量和总金额后,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至总金额-预留金额间取随机数,得到的随机数就是当前红包分配的金额。
实际应用中,程序先将红包金额分配好,即发红包时,红包个数以及每个红包的金额都分配好了,那么用户来抢红包时,我们随机给用户返回一个红包即可。

js代码:

  1. 1 $(function() {
  2. 2 $("button").click(function() {
  3. 3 $.ajax({
  4. 4 type: 'POST',
  5. 5 url: 'bao.php',
  6. 6 dataType: 'json',
  7. 7 beforeSend: function() {
  8. 8 $("#result").html('正在分配红包');
  9. 9 },
  10. 10 success: function(json) {
  11. 11 if (json.msg == 1) {
  12. 12 var str = '';
  13. 13 var res = json.res;
  14. 14 $.each(res,
  15. 15 function(index, array) {
  16. 16 str += '<p>第<span>' + array['i'] + '</span>个红包,金额<span>' + array['money'] + '</span>元,余额<span>' + array['total'] + '元</span></p>';
  17. 17 });
  18. 18 $("#result").html(str);
  19. 19 } else {
  20. 20 $("#result").html('数据出错!');
  21. 21 }
  22. 22 }
  23. 23 });
  24. 24 });
  25. 25 });


bao.php源码:

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


本文转自:https://www.sucaihuo.com/php/322.html 转载请注明出处!

原文链接:http://www.cnblogs.com/mrlime/p/11577223.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号