帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
用ASP制作张扬个性的调查系统
作者:佚名 发布时间:2005-04-02 来源:不详
   作为Webmaster,如果你的网站也需要就某个主题进行调查,而你又讨厌使用别人免费提供的调查板(免费往往是要付出代价的,比如打广告!),那么我建议你花十几分钟时间看完这篇介绍用ASP制作调查板的文章。你只要把文中的代码Copy到你的机子上,稍做修改,你立即就拥有一个属于你自己的个性化调查板。好了,打起精神往下看吧。   本调查板共有三个文件:显示调查问题(research.html)、处理用户选择(select.asp)、浏览调查结果(viewresult.asp)。设计思路为:ASP取得由表单发来的信息,并据此修改记录调查得票数的数据库,然后ASP读取数据库,获得各个调查问题的得票数目,通过得票数多少来调节对应条形图显示的宽来直观比例地给出调查结果。在程序的关键处,我都给出了较为详细的注释,这里就不再讲述ASP的基本知识。读者可以到陶吧ASP专栏查阅。当然,我希望你在自己的服务器上调试程序时,有不懂的地方,还是查查身边的ASP技术手册,看看对象、方法或函数的详细语法试着修改,看看结果如何变化——这可是学习编程的一个好方法呢。       调查问题的设计要依据实际情况,或讲究实用性或讲究趣味性,在网页上显示的风格也或朴素或活泼,本例中是笔者主页上的一个关于“21世纪最重要的是什么?”的趣味调查,为说明问题,下面的代码中省略了美观修饰的代码,你自己动手设计时完全可以使用表格等技巧美化调查问题的显示。为了使提换蜾 览调查时不影响当前页面,程序中给出了弹出新窗口的方案 ?BR>   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,resiza =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 >       依据上面的调查选项,我们得出记录调查得票的数据库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   % >   本例中使用条形图来直观显示调查结果,方法是用选项的投票数占总投票数的百分比值乘上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以上      
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·用ASP.NET实现在线用户统计  (2005-04-02)
 ·用ASP制作强大的搜索引擎  (2005-04-02)
 ·实用篇:用asp实现QQ在线查询  (2005-04-02)
 ·使用ASP建设私人的搜索引擎  (2005-04-02)
 ·用asp解析图片地址,并将其保存  (2005-04-02)
 ·如何用ASP实现电子贺卡一例  (2005-04-02)
 ·用ASP加密算法“保护”你的数据  (2005-04-02)
 ·教你单机上使用ASP  (2005-04-02)
 ·如何利用ASP给主页加密  (2005-04-02)
 ·使用ASP访问XML文件  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统