客户端CGI——结合&#106avascript、dhtml实现bbs的backoffice(一)。

cgi|dhtml|客户端

         客户端CGI——结合javascript、dhtml实现bbs的backoffice(只与服务器交互一次)。
    最近见到很多朋友问有关对form元素的操作问题,下面把我写的一个bbs的backoffice部分帖出来给大家。这个程序实现了对bbs中栏目及其下属论坛的增、删、改名、排序、移动、修改属性等等操作,而只与服务器交互一次,其中用到的表单元素有text , button, submit,select , textarea等,如果你能够全部理解这些代码,那么不敢说你精通javascript和dhtml(我就不敢),最起码可以说你会了。
    因为是草稿,所以未进行程序优化及界面处理,实际上你如果结合css可以把它做得象一个windows程序而不象html页面。另外一条因为我是用ie5来测试的,所以其中一些写法不是很规范,如引用form名时前面没加document , 函数没有返回值等,这些在nescape里都是不允许的,如果你要在nescape里用,请自己把语法规范了。
    由于源代码很长(30000多字节),我将分为几个部分来讲,你把几部分中的代码合在一起存为一个html文件就可以直接运行了。首先需要从数据库中取出记录放到前台javascript数组中,因为着重点是放在前台,所以这里的asp我就不列出来了,只把它生成的html列出来,它的目的是生成数组及初始页面。这部分代码中牵涉到一个生成javascript二维数组的技巧,请大家仔细看一下,这是整个程序的关键所在。下面这段程序生成两个数组,一个是aCategory,代表bbs大的栏目,共有四个;另一个是aForum,代表同栏目相关联的论坛。整个程序的操作实际上就是围绕着两个数组来实现的,同这两个数组相关联的是表单frmManager的两个select :selCategory和selForum。

<script language=javascript>

   //版块数组的构造函数
   function MakeCategory(CategoryID , CategoryName , OrderNum)
     {
       this.CategoryID   = CategoryID ;
       this.CategoryName = CategoryName ;
       this.OrderNum     = OrderNum ;
       return this ;
     }

   //论坛数组的构造函数
   function MakeForum(CategoryID , CategoryName , OrderNum , RootCategoryID , Description , MasterID)
     {
       this.CategoryID     = CategoryID ;
       this.CategoryName   = CategoryName ;
       this.OrderNum       = OrderNum ;
       this.RootCategoryID = RootCategoryID ;
       this.Description    = Description ;
       this.MasterID       = MasterID ;
       return this ;
     }

   //建立版块数组并赋值
  var aCategory = new Array() ;
  aCategory[0] = new MakeCategory(1 , '技术交流' ,1) ;
  aCategory[1] = new MakeCategory(2 , '项目管理' ,2) ;
  aCategory[2] = new MakeCategory(3 , '内部公告' ,3) ;
  aCategory[3] = new MakeCategory(4 , '海阔天空' ,4) ;

   //建立论坛数组并赋值
  var aForum = new Array() ;
  aForum[0] = new MakeForum(5 , 'Asp&Database' ,1 ,1 ,'asp, access,PB, sql.oralce,etc. ',1);
  aForum[1] = new MakeForum(6 , 'Design World' ,2 ,1 ,'photoshop,dreamweaver,flash, 3dmax,etc.',2);
  aForum[2] = new MakeForum(7 , 'Design World' ,3 ,1 ,'photoshop,dreamweaver,flash, 3dmax,etc.',2);
  aForum[3] = new MakeForum(8 , 'Program Language' ,4 ,1 ,'Java, html/dhtml/xml, C/C++, Php/Jsp, vbscript/javascript, etc.',1);
  aForum[4] = new MakeForum(9 , 'System Administration' ,5 ,1 ,'Windows9x/NT/2000, Unix, Linux , etc.',2);
  aForum[5] = new MakeForum(10 , 'Network Security' ,6 ,1 ,'TCP/IP, Socket, hacker, FireWall, Proxy, etc.',1);
  aForum[6] = new MakeForum(11 , 'New Idea' ,7 ,1 ,'Welcome all Creative, innovative and anything different .',1);
  aForum[7] = new MakeForum(12 , '4biz电子商务搜索引擎门户项目' ,1 ,2 ,'E-Commerce Search Engine Portal.',2);
  aForum[8] = new MakeForum(13 , 'Poker Town ' ,2 ,2 ,'Our first Online Game.',1);
  aForum[9] = new MakeForum(14 , 'Vertigine' ,3 ,2 ,'Powerful Vertical Search Engine.',2);
  aForum[10] = new MakeForum(15 , 'EasyCase' ,4 ,2 ,'EasyCase-New modeling tool.',1);
  aForum[11] = new MakeForum(16 , '日常管理' ,1 ,3 ,'Daily Grind.',2);
  aForum[12] = new MakeForum(17 , '临时通知' ,2 ,3 ,'Temporary Notice.',1);
  aForum[13] = new MakeForum(18 , '会议安排' ,3 ,3 ,'Meeting Schedule.',2);
  aForum[14] = new MakeForum(19 , '有感而发' ,4 ,4 ,'Just say it.',1);
  aForum[15] = new MakeForum(20 , '似水流年' ,5 ,4 ,'all that gone with wind.',1);
  aForum[16] = new MakeForum(21 , '谈情说爱' ,6 ,4 ,'Let"s talk about love.',2);
  aForum[17] = new MakeForum(22 , '笑话站' ,7 ,4 ,'Just joke , whatever it is.',1);

</script>

<html>
&lt

时间: 2024-08-30 14:48:44

客户端CGI——结合&#106avascript、dhtml实现bbs的backoffice(一)。的相关文章

客户端CGI——结合javascript、dhtml实现bbs的backoffice(一)。

    客户端CGI--结合javascript.dhtml实现bbs的backoffice(只与服务器交互一次).    最近见到很多朋友问有关对form元素的操作问题,下面把我写的一个bbs的backoffice部分帖出来给大家.这个程序实现了对bbs中栏目及其下属论坛的增.删.改名.排序.移动.修改属性等等操作,而只与服务器交互一次,其中用到的表单元素有text , button, submit,select , textarea等,如果你能够全部理解这些代码,那么不敢说你精通javasc

客户端CGI——结合&amp;#106avascript、dhtml实现bbs的backoffice(四,完)

cgi|dhtml|客户端 //第六步,修改版主 function On_ChangeMaster()    {      //如果没有论坛被选中,则退出      if (frmManager.selForumName .selectedIndex == -1)        {          return 0 ;        }                if (frmManager.btnChangeMaster .value == "修改")        {    

客户端CGI——结合&amp;#106avascript、dhtml实现bbs的backoffice(二)

cgi|dhtml|客户端 //页面显示出来了,下面的任务就是对它们进行操作了.以下都是前台javascript函数.第一步,首先在window.onload事件中根据数组aCategory来生成选择框selCategory的option值.   function On_Load()      {              //初始化        frmManager.btnChangeMaster .disabled      = true ;        frmManager.btnCh

客户端CGI——结合&amp;#106avascript、dhtml实现bbs的backoffice(三)

cgi|dhtml|客户端 //第四步,实现对栏目及相关论坛的排序,基本思路就是对数组进行重新组合排序. function On_OrderUp()    {      var CategoryIndex = frmManager.selCategoryName.selectedIndex ;       var ForumIndex = frmManager.selForumName.selectedIndex ;      if (ForumIndex == -1 && Categor

客户端CGI——结合javascript、dhtml实现bbs的backoffice(二)

//页面显示出来了,下面的任务就是对它们进行操作了.以下都是前台javascript函数.第一步,首先在window.onload事件中根据数组aCategory来生成选择框selCategory的option值.    function On_Load()        {                //初始化        frmManager.btnChangeMaster .disabled        = true ;        frmManager.btnChangeNam

判断客户端是否具备&amp;#106avascript和Cookie功能

cookie|客户端 在我的站点上,我想确认访问者是否具备cookies和JavaScript功能.维持会话状态在许多情况下都很复杂,而且也要考虑到表单的验证.在我的站点上,我使用了客户端JavaScript进行表单验证,所以要完成验证工作,用户的浏览器必须要具备JavaScript功能.同时,我还使用了Session变量,这就需要访问者的浏览器支持Cookies功能.为了确认这些前提条件的存在,我使用了一段小巧的代码来检查用户是否具备JavaScript和Cookies功能.如果用户不具备这2

Dreamweaver编写CSS技巧

1:增加站点的寿命 不规范的样式表可能在当时觉得很方便,但新版本的浏览器出来以后,很可能就会出现兼容性问题.到时逐页修改站点就是一项非常费时的工作同时也使使用CSS失去了意义. 2:让你的站点对所有的用户以及浏览器都适用. 有些地方的政府已经立法要求网站必须让残障人士也同样可以浏览.为残障认识设计的浏览设备,比如听力浏览器,对CSS规范性要求极其严格. 3:让站点更新和维护更加轻松. 使用方式得当的话,CSS可让你在一个页面中的调整快速应用到所有页面中去. 你首先要做的选择是使用哪一种样式表.当

冷静对待流行技术风潮:忽悠一下Ajax

ajax 作者:EasyJF开源团队(www.easyjf.com) 大峡 前几天与瞌睡虫.cn在MSN上闲聊,他说最近看了一本吵得有点热的书,是关于ajax技术的,问他写得怎么样,他说被骗了,问为什么,他说里面全是讲的全是CSS.Javascript.XML,都是以前我们的项目中用到的,笔者说确实是如此,然后他就开始郁闷ing. Ajax(Asynchronous JavaScript and XML),中文翻译即异步加哇十块扑特与二克十二蒙(:-0),这个词好像是2005流行起来的吧,借用某

Frontpage2000值得学习的10个操作技巧(下)

frontpage|技巧 6>CSS的应用 1)样式的建立及修改(内部风格页) 要应用CSS来格式化文本信息,首先必须建立符合要求的样式 "格式"-"样式",进入样式窗口,如图 在"列表"中选择要修改的样式的类型,要修改已经创建的自定义样式,选择"用户定义的样式":要修改标准的网页HTML标记,请单击"所有的HTML标记",这时你可以直接在上面的"样式"列表中双击要编辑的样式,点击