用Javascript轻松制作抽奖系统

From: http://www.85flash.com/Get/JavaScript/2007-1-6/014227705.htm
许多公司忙着搞年会,会上一般都会有一些抽奖活动,下面的程序就是用JAVASCRIPT 写的一个简单的抽奖系统与大家共享。

 

  此代码借鉴了网上的一些网友的代码,又加上了一些诸如不重复抽奖之类的改进。大概思路如下:

  1.将所有的的抽奖数据(这里为手机号码)存入数组中。
  2.使用random 函数随机产生该数组的INDEX
  3.使用setInterval 函数以极短的时间间隔产生该数组随机INDEX所对应的手机号码,并显示。
  4.使用removeEleAt(index)函数删除随机产生过的手机号码。并且重新组织生成剩余的手机号码为一个新的数组,为下次使用。

  使用方法:

  将以下原代码拷到写字板上,然后将txt属性该成html即可。如果出现显示乱码,请改变网页编码(查看--编码)。

  原代码如下:

<html>
<head>
<title> 2006年会抽奖系统</title>
<script language="javascript">
// global variables 
var timer;
var flag = new Array(100);
var existingnum = new Array(100);
var clickTimes = 0;
var randnum;
var cellnum =1;
var mobile = new Array();
// set data here!!
mobile[0]=13020000100;
mobile[
1]=13020000101;
mobile[
2]=13020000102;
mobile[
3]=13020000103;
mobile[
4]=13020000104;
mobile[
5]=13020000105;
mobile[
6]=13020000106;
mobile[
7]=13020000107;
mobile[
8]=13020000108;
mobile[
9]=13020000109;
mobile[
10]=13020000110;
mobile[
11]=13020000111;
mobile[
12]=13020000112;
mobile[
13]=13020000113;
mobile[
14]=13020000114;
mobile[
15]=13020000115;
mobile[
16]=13020000116;
mobile[
17]=13020000117;
mobile[
18]=13020000118;
mobile[
19]=13020000119;
mobile[
20]=13020000120;
mobile[
21]=13020000121;
mobile[
22]=13020000122;
mobile[
23]=13020000123;
mobile[
24]=13020000124;
mobile[
25]=13020000125;
mobile[
26]=13020000126;
mobile[
27]=13020000127;
mobile[
28]=13020000128;
mobile[
29]=13020000129;
mobile[
30]=13020000130;
mobile[
31]=13020000131;
mobile[
32]=13020000132;
mobile[
33]=13020000133;
mobile[
34]=13020000134;
mobile[
35]=13020000135;
mobile[
36]=13020000136;
mobile[
37]=13020000137;
mobile[
38]=13020000138;
mobile[
39]=13020000139;
mobile[
40]=13020000140;
mobile[
41]=13020000141;
mobile[
42]=13020000142;
mobile[
43]=13020000143;
mobile[
44]=13020000144;
mobile[
45]=13020000145;
mobile[
46]=13020020146;
var num = mobile.length-1;

//得到mobile里面任意一个电话号码
function getRandNum(){
document.getElementById(
"result").value = mobile[GetRnd(0,num)];
}


function start()
{
clearInterval(timer);
timer 
= setInterval('change()',50); 
}

function ok(){
clearInterval(timer);
}


//生成一个随机数 介于min和max之间
function GetRnd(min,max){
 
randnum 
= parseInt(Math.random()*(max-min+1));
return randnum;
}


//点击开始 setInterval(,10) 用来设置时间间隔
function setTimer(){
 timer 
= setInterval("getRandNum();",10);
 document.getElementById(
"start").disabled = true;
 document.getElementById(
"end").disabled = false;
}


//点击'停'按钮
function clearTimer(){
 noDupNum();
 
//clearInterval(对象) 清除已设置的setInterval对象 javascript事件, 
 //timer是一个setInterval事件
 clearInterval(timer);
 
//按钮状态改换
 document.getElementById("start").disabled = false;
 document.getElementById(
"end").disabled = true;
 
}


 
//进行 停止的 初始化操作  1 实现从数组里面把已经获奖的人员电话号码删除 2 修改数组长度
 function noDupNum(){
 
// to remove the selected mobile phone number
 //从数组里面删除 randnum (电话号码)
 mobile.removeEleAt(randnum);
 
 
// to reorganize the mobile number array!!
 //再次改编电话号码数组
 var o = 0;
 
for(p=0; p<mobile.length;p++){
 
if(typeof mobile[p]!="undefined"){
 mobile[o] 
= mobile[p];
 o
++;
 }

 }

 
//修改电话号码长度
 num = mobile.length-1;
 }

// method to remove the element in the array
Array.prototype.removeEleAt = function(dx)
 
{
 
if(isNaN(dx)||dx>this.length){return false;}
 
this.splice(dx,1);
 }


// set mobile phone numbers to the table cell 
//
把电话号码显示到table里面
function setValues(){
 
//cellnum 从1开始 id用进行命名的
 document.getElementById(cellnum).value = document.getElementById("result").value ;
 cellnum
++;
 }

</script>
</head>
<body>
<center>
<div> </div>
<div id="main">
 
<div>
 
<h1>中奖号码</h1>
 
 
<p>
 
<input id="result" type="text" size="30" style="height:130px;width:800px;border:2px solid red;font-size:120;" readonly/></p>
 
<p>
 
<input id="start" type="button" value="开始" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;" onclick="setTimer()" />
 
<input id="end" type="button" value="停" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;"onclick="clearTimer();setValues();" disabled/>
</p>
 
<p><strong>一等奖(10名)</strong></p>
 
<table width="946" height="79" border="1">
 
<tr>
 
<td><input name="text36" type="text" id="36" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text37" type="text" id="37" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text38" type="text" id="38" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text39" type="text" id="39" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text40" type="text" id="40" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text41" type="text" id="41" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text42" type="text" id="42" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text43" type="text" id="43" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text44" type="text" id="44" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text45" type="text" id="45" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
</table>
 
<p>二等奖(15名)</p>
 
<table width="951" height="88" border="1">
 
<tr> <td><input name="text21" type="text" id="21" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text22" type="text" id="22" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text23" type="text" id="23" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text24" type="text" id="24" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text25" type="text" id="25" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text26" type="text" id="26" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text27" type="text" id="27" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text28" type="text" id="28" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text29" type="text" id="29" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text30" type="text" id="30" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text31" type="text" id="31" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text32" type="text" id="32" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text33" type="text" id="33" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text34" type="text" id="34" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text35" type="text" id="35" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
</table>
 
<p>三等奖(20名)</p>
 
<table width="961" height="102" border="1">
 
<tr>
 
<td><input name="text1" type="text" id="1" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text2" type="text" id="2" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text3" type="text" id="3" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text4" type="text" id="4" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text5" type="text" id="5" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text6" type="text" id="6" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text7" type="text" id="7" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text8" type="text" id="8" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text9" type="text" id="9" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text10" type="text" id="10" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text11" type="text" id="11" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text12" type="text" id="12" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text13" type="text" id="13" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text14" type="text" id="14" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text15" type="text" id="15" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
<tr>
 
<td><input name="text16" type="text" id="16" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
 
<td><input name="text17" type="text" id="17" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text18" type="text" id="18" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text19" type="text" id="19" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
<td><input name="text20" type="text" id="20" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
 
</tr>
 
</table>
 
<p> </p>
 
<p> </p>
 
<p> </p>
 
</div>
</div>
<center>
 
</body>
</html>



修改一下,从数据库里面读数据出来,然后抽奖,这样就是一个完整的项目了
posted @ 2007-05-30 15:08  jhtchina  阅读(2634)  评论(0)    收藏  举报