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

现在,在网上做调查已经十分普遍了,很多商业网站的网页上常放有各种主题的调查板,一些商业网站也免费为网友提供调查板,比如:博大(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"
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" >
< /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,得出的值作为条形图http://edu.cnzz.cn/NewsInfo/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=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select1*5)% > height=4 >
< %=rs("select1")% >人 占:< %=round(select1,2)% >%< br >
◇学历:
< img src=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select2*5)% > height=4 >
< %=rs("select2")% >人 占:< %=round(select2,2)% >%< br >
◇金钱:
< img src=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select3)*5% > height=4 >
< %=rs("select3")% >人 占:< %=round(select3,2)% >%< br >
◇爱情:
< img src=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select4)*5% > height=4 >
< %=rs("select4")% >人 占:< %=round(select4,2)% >%< br >
◇理想:
< img src=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select5)*5% > height=4 >
< %=rs("select5")% >人 占:< %=round(select5,2)% >%< br >
◇民主意识:
< img src=http://edu.cnzz.cn/NewsInfo/bar.gif width=< %=int(select6)%*5 > height=4 >
< %=rs("select6")% >人 占:< %=round(select6,2)% >%< br >
◇科学思想:
< img src=http://edu.cnzz.cn/NewsInfo/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以上

时间: 2024-11-29 11:52:52

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

用ASP制作个性化的调查板

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

用ASP制作张扬个性的调查系统

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

asp+版本简单的留言板的制作(一)

asp+版本简单的留言板的制作(一)/*豆腐制作,都是精品http://www.asp888.net 豆腐技术站如转载,请保留版权信息*/前言:俗话说,眼看千遍,不如手写一遍,的确,很多纯粹理论性的东西,看多了,只是有了个简单的认识,其实在具体的程序调试过程中,肯定会遇到很多很多的问题一直想给大家写个什么程序的,但是 豆腐最近特别忙,年底了,什么事情都要结算,再加上我一直要想办法写一些文章来奉献给大家,终于抽出来一个下午,来做了一个这样的程序,结果忘记关OICQ了,很多的网友的信息 都没有时间回

asp+版本简单的留言板的制作(二)

asp+版本简单的留言板的制作(二)/*豆腐制作,都是精品http://www.asp888.net 豆腐技术站如转载,请保留版权信息*/ 在留言的录入界面完成后,自然要准备做留言内容的录入了.这个其中一个很关键的地方就是如何将我们在config.web 的内容读取出来,我用了下面的几条语句Dim Cfg as HashTableCfg = Context.GetConfig("appsettings")Conn = New SQLConnection(cfg("Conn&q

asp+版本简单的留言板的制作(三)

asp+版本简单的留言板的制作(三)/*豆腐制作,都是精品http://www.asp888.net 豆腐技术站如转载,请保留版权信息*/现在该显示了,其实显示是很简单,只要看过豆腐前面文章的朋友应该都知道该怎么写这个程序,但是我在这里要强调的是 分页 的程序,我也和大家 一样,在开始的时候,想利用web form的数据绑定的功能,但是不幸的是,虽然用datagrid 实现绑定和分页都是很简单的,但是 datagrid显然形式上的Grid显然对 留言版 这样的程序是 不适合的,DBList 到是

手把手教您制作一个完整网站(内附教程)

手把手教您制作一个完整网站(内附教程) 1.搞个简单的策划先. 至少应该有一个大概的方向吧,先确定网站的类型,是地区门户.行业门户,还是下载.电影.论坛等等.然后基本确定网站的名称. 2.找一个合适的域名. 域名注册.com(国际域名)和.cn(国内域名)为宜,域名最好不要太长.且有一定的意义.容易记,现在好的域名已经不多了,你可灵活的使用数字.英文单词.拼音等的组合,在域名的前.后加上i.e.51.ok.hao.88.163等,可以灵活的组合出许多好的域名.域名注册信息查询 http://ww

用ASP技术开发WEB调查(投票)系统 (2)

web|投票|投票 二.调查项目的创建和维护   作 者 : 仙人掌工作室       本节我们说明调查项目创建和维护功能的实现.       创建与维护调查项目的起始页面是Startup.html,该页面负责设定PollMaker.asp和ItemMaker.asp等页面使用的帧结构(从上到下共分三个帧).起始页面所引用的Blank.html只用于指定背景颜色,StartMsg.html提供启动时显示在最下面帧的提示信息.       PollMaker.asp和ItemMaker.asp都包

用 ASP 技术开发WEB调查(投票)系统 (1)

web|投票|投票 纲要       本文介绍一个用 ASP 技术实现的 WEB 调查系统(也称为投票系统)的实现,该系统支持基于浏览器的调查项目创建与维护.调查表单的动态生成以及投票结果分析.    目录      一.系统概貌   二.调查项目的创建和维护   三.调查表单的生成与结果分析(附源程序)         一.系统概貌   作 者 : 仙人掌工作室       本文所介绍的 WEB 调查系统(或称为投票系统)支持基于浏览器的调查项目创建.管理与结果分析.调查项目及其下属各个问题的

利用ASP打造个性化论坛(中)

二.构建 1.构建主窗体 先要给出一个窗体,能够让网友输入注册讯息,这些是HTML的内容,且放在一边,我们来仔细看看具体实现注册的ASP脚本. (1)将资料中的单引号改成两个单引号,并且在前后加上单引号 Function SqlStr( data ) SqlStr = "'" & Replace( data,"'", "''" ) & "'" End Function 注:这是一个自定义的函数,用来把用户输入中