您的位置:首页精文荟萃软件资讯 → 用ASP制作个性化的调查板(附源程序)

用ASP制作个性化的调查板(附源程序)

时间:2004/10/7 19:18:00来源:本站整理作者:蓝点我要评论(0)

现在,在网上做调查已经十分普遍了,很多商业网站的网页上常放有各种主题的调查板,一些商业网站也免费为网友提供调查板,比如:博大(poll.bodachina.com)。因为网络的普及,网上调查往往能达到较好的效果。在自己的个人站点上放一个趣味问题调查板,着实能为网站添色不少;况且通过调查结果你能更多更准确了解网友对自己站点的看法。作为Webmaster,如果你的网站也需要就某个主题进行调查,而你又讨厌使用别人免费提供的调查板(免费往往是要付出代价的,比如打广告!),那么我建议你花十几分钟时间看完这篇介绍用ASP制作调查板的文章。你只要把文中的代码Copy到你的机子上,稍做修改,你立即就拥有一个属于你自己的个性化调查板。好了,打起精神往下看吧。

  本调查板共有三个文件:显示调查问题(research.html)、处理用户选择(select.asp)、浏览调查结果(viewresult.asp)。设计思路为:ASP取得由表单发来的信息,并据此修改记录调查得票数的数据库,然后ASP读取数据库,获得各个调查问题的得票数目,通过得票数多少来调节对应条形图显示的宽来直观比例地给出调查结果。在程序的关键处,我都给出了较为详细的注释,这里就不再讲述ASP的基本知识。读者可以到陶吧ASP专栏查阅。当然,我希望你在自己的服务器上调试程序时,有不懂的地方,还是查查身边的ASP技术手册,看看对象、方法或函数的详细语法试着修改,看看结果如何变化——这可是学习编程的一个好方法呢。



一、显示调查问题(research.html)



  调查问题的设计要依据实际情况,或讲究实用性或讲究趣味性,在网页上显示的风格也或朴素或活泼,本例中是笔者主页上的一个关于“21世纪最重要的是什么?”的趣味调查,为说明问题,下面的代码中省略了美观修饰的代码,你自己动手设计时完全可以使用表格等技巧美化调查问题的显示。为了使提交或浏览调查时不影响当前页面,程序中给出了弹出新窗口的方案。

researchindex.html:



< html >

< title >调查板测试< /title >

< head >

< !-- start:定义新开的窗口-- >

< script language=javascript >

< !--

var newWindow = null

function OpenWindow(htmurl)

{

if (! newWindow || newWindow.closed)

{

newWindow =

window.open(htmurl,"newwin","toolbar=no,resizable=no,scrollbars=no,width=400,height=280");

}else

{

newWindow.focus();

}

}

//-- >

< /script >

< !-- end:定义新开的窗口-- >

< /head >

< body >

< !-- start:调查题目、选项 -- >

< p >您认为21世纪最重要的是什么?< /p >

< form method="POST" action="vote/select.asp" name="research" LANGUAGE="javascript"

onSubmit="OpenWindow('')" target="newwin" >

< p align="left" >

< br >

< input type="radio" value="1" name="Options" >知识(知识就是力量)< br >

< input type="radio" value="2" name="Options" >学历(学历社会没有终结)< br >

< input type="radio" value="3" name="Options" >金钱(经济就是基础)< br >

< input type="radio" value="4" name="Options" >爱情(永不进入坟墓的爱情)< br >

< input type="radio" value="5" name="Options" >理想(天啦,理想是什么)< br >

< input type="radio" value="6" name="Options" >民主意识(关心政治)< br >

< input type="radio" value="7" name="Options" >科学思想(科教兴国)< br >

< input type="submit" value="提交" name="voting" >

< input type="button" value="查看" name="viewing" onClick="OpenWindow('vote/viewresult.asp')" >

< /form >

< !-- start:调查题目、选项 -- >

< /body >

< /html >



二、处理用户选择(select.asp)



  依据上面的调查选项,我们得出记录调查得票的数据库researchdb.mdb的设计(以Access为例),表名为:research。如果你的数据库和表没有存为以上的名字,那么在后面的程序和操作中你不要忘记也相应修改过来。



存放调查投票数的表research:



字段名  数据类型  默认值

id    自动编号    1

select1  数字     0

select2  数字     0

select3  数字     0

select4  数字     0

select5  数字     0

select6  数字     0

select7  数字     0





  建好数据库后,我们来在服务器上建立数据源。首先,运行“控制面板”中的“ODBC”,选择“系统DSN”,按“添加”按钮,选取“Microsoft Access Driver”,选定后按“完成”按钮,然后在ODBC设定中“数据源名”输入框输入数据库名称,本例中为researchdb,然后按下“选取”按钮选择数据库文件(你不会说你忘记了刚刚设计的数据库存在那里了吧),选定后按“确定”,你即可看到新建的数据源 researchdb。这样,我们就可以在ASP中调用了。

select.asp:



< %

'下面的if语句是通过验证selected是否为空来判断用户是否作了选择

if request.form("options") < >Empty then

% >



< %

'下面的if语句是通过比较Request的两个collection(ServerVariables和Cookies)的值

'来防止用户连续按提交而影响调查的结果

if not Request.ServerVariables("REMOTE_ADDR")=request.cookies("IPAddress") then

'把访问客户的IP信息写入Cookies

response.cookies("IPAddress")=Request.ServerVariables("REMOTE_ADDR")

% >

< %

'建立连接(Connection)对象,打开记录调查结果的数据库

set conn=server.createobject("ADODB.CONNECTION")

conn.open "researchdb"

% >



< %

'定义变量

dim rs

dim sql

dim selected

selected=request.form("options")

'建立记录集合(Recordset)对象,用方法Open打开对象,同时修改对应的数据

set rs=server.createobject("adodb.recordset")

'修改数据表ressearch中的数据,即对应的投票数增加1

sql="update research set select"&selected&"=select"&selected&"+1 where id=1"

rs.open sql,conn,3,3

'从内存中清除记录集合对象

set rs=nothing

'关闭连接

conn.close

'从内存中清除连接对象

set conn=nothing

'连接到浏览调查结果的页面

response.redirect "viewresult.asp"

else

Response.write "投票失败提示:您刚才已投了票,谢谢您的支持!"

end if

else

Response.write "投票失败提示:您忘记选择了!"

end if

% >



三、浏览调查结果(viewresult.asp)



  本例中使用条形图来直观显示调查结果,方法是用选项的投票数占总投票数的百分比值乘上5,得出的值作为条形图bar.gif显示的宽(可用常见的图象工具制作一个渐变色的小条形图,或是到网上down一个)。为了给出带两为小数的得票的百分比,程序中使用了VBScript中的四舍五入函数Round。为了美观,把调查结果放到表格中显示,如图所示。下面给出的代码中略去了表格的设计。



viewresult.asp

< %

set conn=server.createobject("ADODB.CONNECTION")

conn.open "researchdb"

% >

< %

dim rs

dim sql

dim select1

dim select2

dim select3

dim select4

dim select5

dim select6

dim select7

dim total

set rs=server.createobject("adodb.recordset")

sql="select * from research where id=1"

rs.open sql,conn,1,1

total=rs("select1")+rs("select2")+rs("select3")+rs("select4")+rs("select5")+rs("select6")+rs("select7")

'判断总票数是否为0,确保下面的除法有效

if total > 0 then

select1=(rs("select1")/total)*100

select2=(rs("select2")/total)*100

select3=(rs("select3")/total)*100

select4=(rs("select4")/total)*100

select5=(rs("select5")/total)*100

select6=(rs("select6")/total)*100

select7=(rs("select7")/total)*100

% >

< p >谢谢您的参与,下面是当前的调查结果

< p >

◇知识:

< img src=bar.gif width=< %=int(select1*5)% > height=4 >

< %=rs("select1")% >人 占:< %=round(select1,2)% >%< br >

◇学历:

< img src=bar.gif width=< %=int(select2*5)% > height=4 >

< %=rs("select2")% >人 占:< %=round(select2,2)% >%< br >

◇金钱:

< img src=bar.gif width=< %=int(select3)*5% > height=4 >

< %=rs("select3")% >人 占:< %=round(select3,2)% >%< br >

◇爱情:

< img src=bar.gif width=< %=int(select4)*5% > height=4 >

< %=rs("select4")% >人 占:< %=round(select4,2)% >%< br >

◇理想:

< img src=bar.gif width=< %=int(select5)*5% > height=4 >

< %=rs("select5")% >人 占:< %=round(select5,2)% >%< br >

◇民主意识:

< img src=bar.gif width=< %=int(select6)%*5 > height=4 >

< %=rs("select6")% >人 占:< %=round(select6,2)% >%< br >

◇科学思想:

< img src=bar.gif width=< %=int(select7)%*5 > height=4 >

< %=rs("select7")% >人 占:< %=round(select7,2)% >%< /p >



< p align="center" >已经有:< %=total% >人参加调查< br >< br >

【< a href="javascript:window.close()" >关闭窗口< /a >】< /p >

< p >

< %

else

response.write "还没有人参与调查"

end if

rs.close

set rs=nothing

conn.close

set conn=nothing

% >



附注:

  以上代码均在 WindowsNT4.0中文(Pack 6)/IIS4.0上调试通过。

  以下任何一种环境都可执行ASP:

   一、Windows NT Server 4.0 / IIS3.0以上

   二、Windows NT WorkStation 4.0 / Microsoft Peer Web Service3.0以上

   三、Windows 95/98 / Microsoft Personal Web Server 1.0a以上





--------------------------------------------------------------------------------


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本