公司周年庆要到了,又要搞去年一样的抽奖活动。以前部门李老大搞过一个抽奖程序,我研究了一下,没懂,程序应该是JS的,取数又没有从数据库里取,但又有很多ASP代码,我就晕了,实现功能上不能连续点击抽奖,一次抽奖完后,不能立即执行下一次,只有刷新之后才可以,苏老大说这不科学,让我研究研究,还要避免数据的重复。
我就开始折腾起来了。之前收集过一个简单的js抽奖代码,但数据会重复。我自己研究了半天,没搞定,想起CSDN了,就去CSDN上求助了,贴出代码,过了1天,再去看看,果真有高人解答了,小弟那个激动啊。马不停蹄去试了试,结果还让人欣慰啊,重复问题解决了。然后就用抽奖的数据去试试,就不行了,抽奖数据是从ERP系统里导出来的,数据量挺大,格式又有问题。我又想到了导出成TXT,用notepad改改格式,几经折腾,又在CSDN上找到了notepad清除换行符的办法。最终基本功能实现了,CSDN是个好地方啊,对于我们这种小菜鸟来说那就是幸福之地,感谢那些CSDN的高手们啊。
代码如下:
<html>
<title>随机抽奖程序</title>
<head><meta http-equiv=Content-Type content=”text/html; charset=gb2312″>
</head>
<body><script type=”text/javascript”><!–
var alldata = “1,7,4,8,3,2, ” //抽奖数据,以逗号分隔
var alldataarr = alldata.split(“,”)
var num = alldataarr.length-1
var timer
function change(){ document.getElementById(“oknum”).innerHTML = alldataarr[GetRnd(0,num)];
}
function start(){
clearInterval(timer);
timer = setInterval(‘change()’,10); //随机数据变换速度,越小变换的越快
}
function ok(){
clearInterval(timer);
var val = document.getElementById(“oknum”).innerText;
document.getElementById(“showresult”).value=val;
alldata = alldata.replace(new RegExp(val+’,\?’),”);
alldataarr = alldata.split(“,”);
num = alldataarr.length-1 ;
}
function GetRnd(min,max){
return parseInt(Math.random()*(max-min+1));
}
// –></script>
<div id=”oknum” name=”oknum” >请单击开始抽奖</div>
<button onClick=”start()” accesskey=”s”>开始抽奖(<U>S</U>)</button>
<button onClick=”ok()” accesskey=”o”>停止(<U>O</U>)</button>
<input type=”text” id=”showresult” value=””>
</body>
</html>
越来越洋气啦,现在都研究JS啦,兄弟佩服啊……
乱整,你晓得撒!
我把代码COPY 来保存成一个HTML文件,斗显示个开始抽奖和停止,如何调用参加抽奖的数据??太洋气啦呀
var alldata = “1,7,4,8,3,2, ” //抽奖数据,以逗号分隔