php 九宫格验证码,PHP 九宫格抽奖代码

商城中营销活动最常见的就是大转盘抽奖了最近SHOPNC中正好需要这个12宫格抽奖,今天整理了下。

783c2b67dc7d0d718e47238fb3c00de0.png

前端主要代码

友情提示:每次抽奖消耗5个百利积分

我的积分:19分

  • 10倍积分
  • 40倍积分
  • 20倍积分
  • 1倍积分
  • 谢谢参与
  • 50倍积分
  • 1积分
  • 100倍积分
  • 2倍积分
  • 200倍积分

2. 主要JS代码//中奖记录

function lotteryrecord() {

var t = "",

e = json_ajax("/shop/index.php?act=lottery&url=get_isOklotteryList",t,"GET",!0);

if (e) {

var r = e.length;

if (r > 0) {

for (var o = "",

i = 0; r > i; i++) o += "

 恭喜" + e[i].member_mobile + " 获得 奖品  【" + e[i].title + "】,快去试手气吧 !";

$("#lotteryrecord").html(o)

} else {

var o = "

大奖等着你,快去试手气 !";

$("#lotteryrecord").html(o)

}

}

jQuery(".brand-main02-right-box01-wrap").slide({

mainCell: ".brand-main02-right-box01 ul",

autoPage: !0,

effect: "top",

autoPlay: !0,

vis: 6

})

}

//如果中奖获取中奖详细信息

function lotterygrand() {

}

function startLottery() {

lotteryrecord();

if ($("#nolottery").hide(), $("#winlottery").hide(), lottery.init("lottery"), !click) {

lottery.speed = 100;

var t = $("#user_id").val();

if ("0" == t) userLogin();

else {

var e = "",

r = json_ajax("/shop/index.php?act=lottery&url=ajax_get_mylottery",e,"POST",!0);

//alert(r.data.prize_name);

if (r && r.result) switch (r.result) {

case "0":

userLogin();

break;

case "1":

//本期活动已经关闭!

$("#close").show();

break;

case "2":

//您的积分暂时不足,赚足积分再来玩吧!

$("#jifen").show();

break;

case "3":

//本期活动结束

$("#jieshu").show();

break;

case "4":

//今天摇奖次数已经用完,明天再来吧!

$("#cishu").show();

break;

case "7":

//异常

break;

case "6":

//您的手机号码没有绑定!

$("#shenhe").show();

break;

case "5":

$("#lottery").attr("state", r.data.state),

$("#lottery").attr("prize_site", r.data.prize_site),

$("#lottery").attr("prize_name", r.data.prize_name),

$("#lottery").attr("prize_type", r.data.prize_type),

$("#lottery").attr("copywriter", r.data.copywriter),

$("#lottery").attr("prize_point", r.data.prize_point),

$("#lottery").attr("user_points", r.data.user_points),

roll(),

click = !0

} else alert("网络异常,请检测网络线路!")

}

}

}

function userLogin() {

// login_dialog();

alert('请先登录');

}

function prize_show(t) {

var e = $("#lottery").attr("copywriter");

if ("0" == t) {

var r = $("#lottery").attr("prize_point");

$("#wincopywriter").html(e),

$("#winpoint").html(r + "积分"),

$("#winlottery").fadeIn(1500),

lotterygrand()

} else {

var o = $("#lottery").attr("prize_name");

$("#winpoint").html(o),

$("#wincopywriter").html("填写收货地址"),

$("#winlottery").fadeIn(1500),

lotteryrecord()

}

}

function roll() {

lottery.times += 1,

lottery.roll();//转动过程调用的是lottery的roll方法,这里是第一次调用初始化

var t = $("#lottery").attr("prize_site");

if (lottery.times > lottery.cycle + 10 && lottery.index == t) {

var e = $("#lottery").attr("state"),

r = $("#lottery").attr("copywriter");

if ("0" == e) $("#nocopywriter").html(r),

$("#nolottery").fadeIn(1500);

else {

var o = $("#lottery").attr("prize_type");

prize_show(o)

}

var i = $("#lottery").attr("user_points");

$("#lotteryPoint").html(i),

$("#no_users_point").html(i),

$("#win_users_point").html(i),

clearTimeout(lottery.timer),

lottery.prize = 0,

lottery.times = 0,

click = !1

} else {

if (lottery.times 

else if (lottery.times == lottery.cycle) {

var l = Math.random() * lottery.count | 0;

lottery.prize = l

} else lottery.speed += lottery.times > lottery.cycle + 10 && (0 == lottery.prize && 7 == lottery.index || lottery.prize == lottery.index + 1) ? 110 : 20;

lottery.speed 

lottery.timer = setTimeout(roll, lottery.speed);//循环调用

}

return ! 1

}

var lottery = {

index: -1,//当前转动到哪个位置,起点位置

count: 9, //总共有多少个位置

timer: 0, //setTimeout的ID,用clearTimeout清除

speed: 20,//初始转动速度

times: 0, //转动次数

cycle: 50,//转动基本次数:即至少需要转动多少次再进入抽奖环节

prize: 0, //中奖位置

init: function(t) {

$("#" + t).find(".lottery-unit").length > 0 && ($lottery = $("#" + t), $units = $lottery.find(".lottery-unit"), this.obj = $lottery, this.count = $units.length, $lottery.find(".lottery-unit-" + this.index).addClass("active"))

},

roll: function() {

var t = this.index,

e = this.count,

r = this.obj;

return $(r).find(".lottery-unit-" + t).removeClass("active"),

t += 1,

t > e - 1 && (t = 0),

$(r).find(".lottery-unit-" + t).addClass("active"),

this.index = t,

!1

},

stop: function(t) {

return this.prize = t,

!1

}

},

click = !1;

window.onload = function() {

lotterygrand();

lotteryrecord();

lottery.init("lottery");

};

3. 主要后台代码# 获取范围

private function round($p) {

$width = 360 / 7;

$a = $p * $width;

$b = $a + $width;

return mt_rand($a + 10 ,$b - 10);

}

# 随机一个概率出来

private function probability() {

//return rand(0,6);

$probability_all = array(0,0);

foreach($this->prize as $i=>$val) {

list($title,$desc,$money,$probability) = $val;

$probability_all[0] += $probability[0];

$probability_all[1] += $probability[1];

}

if ( empty($this->prize) ) {

return -1;

}

$probability_all[1] = intval($probability_all[1] / count($this->prize));

$yes = mt_rand(1,$probability_all[1]);

$prize = -1;

if ( $probability_all[0] <= 0 || $probability_all[1] <= 0 || $yes > $probability_all[0] ) {

} else {

$list = array();

$add = 0;

$total = 0;

foreach($this->prize as $i=>$val) {

list($title,$desc,$money,$probability) = $val;

if ( $probability[0] <= 0 ) {

continue;

}

$total = $add += $probability[0];

$list[$add] = $i;

}

$yes = mt_rand(1,$total);

foreach ($list as $k => $v) {

if ( $yes <= $k ) {

$prize = $v;

break;

}

}

}

return $prize;

}

4.数据表CREATE TABLE `tp_member_lottery` (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`member_id` mediumint(10) unsigned NOT NULL,

`member_mobile` varchar(11) DEFAULT '0' COMMENT '手机号',

`time` int(10) unsigned NOT NULL,

`prize` tinyint(1) unsigned NOT NULL,

`okmoney` mediumint(8) NOT NULL DEFAULT '0' COMMENT '中奖积分数量',

`money` mediumint(8) unsigned NOT NULL,

`title` varchar(20) NOT NULL,

`info` varchar(100) NOT NULL,

PRIMARY KEY (`id`),

KEY `uid` (`member_id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='会员大转盘记录表';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值