php实现翻版抽奖

<!DOCTYPE HTML>
<html>
<head>
		<meta charset="utf-8">
		<meta name="keywords" content="jquery"/>
		<meta name="description" content="抽奖大转盘"/>
		<title>PHP+JQUERY实现抽奖大转盘</title>
		<script type="text/javascript" src="../../../jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="jquery.flip.min.js"></script>
		<script type="text/javascript" src="jquery-ui-1.7.2.custom.min.js"></script>
		<style type="text/css">
				ul{list-style-type:none;border:1px solid #eee;width:600px;height:400px;}
				ul li{width:160px;height:160px;border:1px solid black;float:left;margin-left:10px;margin-top:10px;}
				.red{background:red;}
				.green{background:green;}
				.blue{background:blue;}
				.purple{background:purple;}
				.olive{background:olive;}
				.brown{background:brown;}
		</style>
		<script type="text/javascript">
				$(function(){ 
					$("#prize li").each(function(){ 
						var p = $(this); 
						var c = $(this).attr('class'); 
						p.css("background-color",c); 
						p.click(function(){ 
							$("#prize li").unbind('click'); 
							$.getJSON("data.php",function(json){ 
								var prize = json.yes; //抽中的奖项 
								p.flip({ 
									direction:'rl', //翻动的方向rl:right to left 
									content:prize, //翻转后显示的内容即奖品 
									color:c,  //背景色 
									onEnd: function(){ //翻转结束 
										p.css({"font-size":"22px","line-height":"100px"}); 
										p.attr("id","r"); //标记中奖方块的id 
										$("#viewother").show(); //显示查看其他按钮 
										$("#prize li").unbind('click') 
										.css("cursor","default").removeAttr("title"); 
									} 
								}); 
								$("#data").data("nolist",json.no); //保存未中奖信息 
								$("viewother").css("display","block");
							}); 
						}); 
					}); 
				}); 
				$(function(){ 
							$("#viewother").click(function(){ 
								var mydata = $("#data").data("nolist"); //获取数据 
								var mydata2 = eval(mydata);//通过eval()函数可以将JSON转换成数组 
									  
								$("#prize li").not($('#r')[0]).each(function(index){ 
									var pr = $(this); 
									pr.flip({ 
										direction:'bt', 
										color:'lightgrey', 
										content:mydata2[index], //奖品信息(未抽中) 
										onEnd:function(){ 
											pr.css({"font-size":"22px","line-height":"100px","color":"#333"}); 
											$("#viewother").hide(); 
										} 
									}); 
								}); 
								$("#data").removeData("nolist"); 
							}); 
				}); 
		</script>
</head>
<body>
		<ul id="prize">
				<li class="red" title="点击抽奖">1</li>
				<li class="green" title="点击抽奖">2</li>
				<li class="blue" title="点击抽奖">3</li>
				<li class="purple" title="点击抽奖">4</li>
				<li class="olive" title="点击抽奖">5</li>
				<li class="brown" title="点击抽奖">6</li>
		</ul>
		<div><a href="#" id="viewother" style="display:none;">翻开其他</a></div>
		<div id="data"></div>
</body>
</html>

<?php
function get_rand($proArr) { 
    $result = ''; 
 
    //概率数组的总概率精度 
    $proSum = array_sum($proArr); 
 
    //概率数组循环 
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        } 
    } 
    unset ($proArr); 
 
    return $result; 
} 
$prize_arr = array( 
    '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), 
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), 
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), 
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), 
    '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), 
    '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), 
); 
foreach($prize_arr as $key=>$val){
		$arr[$val['id']]=$val['v'];
}
$rid=get_rand($arr);//根据概率获取奖项id
$res['yes']=$prize_arr[$rid-1]['prize'];//中奖项
unset($prize_arr[$rid-1]);
shuffle($prize_arr);
for($i=0;$i<count($prize_arr);$i++){
	$pr[]=$prize_arr[$i]['prize'];
}
$res['no']=$pr;
echo json_encode($res);
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值