基于web技术的合同管理系统的设计和实现_第1页
基于web技术的合同管理系统的设计和实现_第2页
基于web技术的合同管理系统的设计和实现_第3页
基于web技术的合同管理系统的设计和实现_第4页
基于web技术的合同管理系统的设计和实现_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于web技术的合同管理系统的设计和实现摘要文章介绍了采用流行的B/S模式开发的一个组合是合同管理系统。对于关键技术:用Apache建立Web站点、MySQL建库策略、PHP编程与应用进行了深入分析。合同管理系统的设计采用了PHP语言,smarty模板等技术开发,在WindowsXP操作系统,Apache效劳器和Mysql5.1数据库系统的支持下运行。首先说明了开发合同管理系统的目的,分析并说明了系统的需求,然后应用面向对象模型对系统的各个子模块、系统流程、组件、类库、数据库和编码等局部进行了分析和设计。该合同管理系统能够实现数据的输入、删除、修改、查询、日志和统计等根本功能,适用于中小型企业的合同管理。关键字:Web,Apache,MySQL,PHP,合同管理DesignofWeb-BasedContractManagementSystemABSTRACTThispaperintroducestheuseofthepopularB/Smodeldevelopedbyacombinationofacontractmanagementsystem.Thekeytechnologies:WebsitesetupbyApache,MySQLbuildingadatabasestrategy,PHPprogrammingandapplicationofin-depthanalysis.ContractmanagementsystemwasdesignedwithPHPlanguage,smartytemplates,andothertechnologydevelopment,intheWindowsXPoperatingsystem,ApacheserveranddatabasesystemsupportMysql5.1run.Theoutsetthatthepurposeofcontractmanagementsystemdevelopedtoanalyzeandexplainthesystemrequirements,thentheobject-orientedmodelofeachmoduleofthesystem,thesystemprocesses,components,libraries,databasesandcodingpartsoftheanalysisanddesign.Thecontractmanagementsystemtoinputdata,delete,modify,query,logsandstatisticsandotherbasicfunctions,thecontractformanagementofsmallandmediumenterprises.Keywords:Web,Apache,MySQL,PHP,ContractManagement目录ABSTRACT21.相关技术41.1PHP介绍41.2数据库MYSQL71.3APACHE介绍81.4B/S架构介绍102.系统分析与设计122.1系统的功能设计122.2系统的流程设计122.3系统流程图和功能图142.4系统功能结构分析152.4.1添加合同152.4.2修改合同152.4.3停用/启用合同15打印合同16查看日志162.5数据库设计16数据库的设计17合同信息表contract_order的设计17合同日志表log_order的设计18管理员表member的设计182.5.5合同信息表和合同日志表的关系193.系统实现193.1系统运用的技术193.1.1JQUERY的Ajax技术193.1.2PHP+SMARTY让你的开发更简单213.2系统功能模块22用户管理223.2.2合同管理233.3系统前台页面29合同列表页ContractList.php30合同详细页ContractManage.phpaction为view30合同搜索页ContractSreach.php314.结束语33致谢35参考文献361.相关技术在Internet飞速开展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们的政治、经济、工作甚至日常生活等各个方面发挥着重要的作用。合同管理是指对合同以及相关资源进行简单而且科学完善的管理,它是企业管理中不可缺少的重要组成局部。该合同管理系统为企业合同管理找到一种便捷、有效、实用的方法和途径,编制这样一套合同管理系统软件有着尤为重要的意义。同时合同管理作为企业管理中的重要一环,对合同数据的准确性、数据传输的平安性和业务处理的标准性有很高的要求.也正因如此,合同管理工作中繁琐的业务流程限制了管理人员工作效率的提高;另外,如何有效地利用庞大的合同历史数据,为合同管理人员提供必要的决策支持也成为一项新的课题.随着我国企业信息化水平的提高,合同管理已逐步由传统的手工作业转化为计算机管理.初期的合同管理系统为文档管理系统,实现合同生命周期的过程记载,而后开展为数字化合同模型,对合同实行元素化管理,形成了标准的数据结构,可方便进行数据统计、比拟和查询分析。所以合同管理系统也就自然而然的成为公司企业的首选。本文介绍的合同管理系统就是基于中小型企业的合同管理方面的一个应用程序。PHP技术为开发B/S结构的应用程序提供了高效的平台。同时编写PHP语言的开发工具也有很多供选择。PhpMyAdmin3.10是对Mysql数据库进行操作的辅助软件。用这个软件可以很快捷的对数据库操作。所以,在这些系统支持下运行应用系统数据通信快,兼容性好,运行效率高,并且还可以提高系统的开发效率,缩短开发周期。1.1PHP介绍PHP,是英文超级文本预处理语言HypertextPreprocessor的缩写。PHP是一种HTML内嵌式的语言,是一种在效劳器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP语言简介:PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以到达加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。PHP的开展:PHP于1994年由RasmusLerdorf创立,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本。在1995年中,PHP2.0发布了。第二版定名为PHP/FI(FormInterpreter)。PHP/FI参加了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用PHP/FI;1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发方案,开发小组参加了ZeevSuraski及AndiGutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。2023年PHP5成为了PHP唯一的有在开发的PHP版本。将来的PHP5.3将会参加Latestaticbinding和一些其他的功能强化。PHP6的开发也正在进行中,主要的改良有移除register_globals、magicquotes和Safemode的功能。PHP的特性开放的源代码:所有的PHP源代码事实上都可以得到。PHP是免费的。PHP的快捷性跨平台性强。由于PHP是运行在效劳器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。效率高:PHP消耗相当少的系统资源。图像处理:用PHP动态创立图像面向对像:在php4,php5中,面向对象方面都有了很大的改良,现在PHP完全可以用来开发大型商业程序。专业专注;PHP支持脚本语言为主,同为类C语言。PHP的技术应用:伪静态,静态页面生成,数据库缓存,过程缓存,DIV+CSSw3c标准,大负荷,分布式,JQUERY框架集成,flex,桌面程序应用PHP语言的优势。我个人认为PHP有以下的几点优势:PHP脚本程序的速度相对于ASP是很快的因为ASP是建立在COM体系结构之上的。当用VBScript写ASP脚本时,实际上实在使用COM的对象,当向用户浏览器发送信息时,它用的是Response对象的write方法,当它访问数据库和文件系统的时候,它用的是其他的COM对象。这些COM对象的使用使运行速度下降。在PHP代码中,所有的工作都运行在PHP的内存空间中,也就是说PHP不是基于COM对象的,所以的他的运行速度会快一些。高级内存管理在IIS4下,一个ASP脚本header.asp,如果被20个页面所包含,那么运行的时候,在内存当中会保存这20个header.asp的编译副本,IIS5解决了这个问题,但只有windows2000才支持IIS5,由于这种IIS5的不能向下兼容的原因,许多效劳器仍然要使用IIS4下的低级的内存管理。而在PHP中,不会存在这种问题,只有当require时,才会调用某个include文件MySQL使PHP更精彩PHP与MySQL的组合既简单又精彩。PHP有许多管理和维护MySQL的工具,对MySQL的支持是最全面的。许多有用的函数如mysql_insert_id和MySQL_affected_rows等,其他的数据库那么没有。ASP和PHP都是中型网站的较理想的解决方案,但PHP与MySQL的紧密结合使PHP更加优越。MySQL的虚度比MicrosoftACCESS速度快,Mssql和Oracle速度比MySQL要快,可是费用较高。Java和C++的变成风格这个优点只是一个看法。我知道你不会相信一个VisualBasic程序员会因为PHP有Java和C++的编程风格而转向使用PHP,但你会相信有许多人还是喜欢Java和C++的,PHP是一种具有这两种语言的编程风格的较容易学习的语言。PHP支持结构化编程,在VB因为他的继承性使用类还是较少的。而PHP的像Java和C++一样的继承性使一个大型的程序中到处都充满了类的影子。Bug的处理。你是否曾经要求Microsoft修改ASP的一些Bug呢?如果你不是一个像Boeing一样的组织,你无法获得迅速而恰当的修改,那么当你遇到Bug而停止工作时,如果这个Bug不修改,你将无法继续你的工作的。PHP,当你发现Bug时,你可以修改他,如果你没有专家的水平,你可以请专家修改,并且你的修改会得到开放代码组织的接受和认可。PHP代码可以再WINDOWS,LINUX下运行,直接复制代码就可以。方便快捷。综上这些优点所有选择了PHP语言进行开发。1.2数据库MYSQLMySQL名字的来历MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2023年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有本钱低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有本钱而选择了MySQL作为网站数据库。(1)MYSQL的特性:1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.支持多线程,充分利用CPU资源5.优化的SQL查询算法,有效地提高查询速度6.既能够作为一个单独的应用程序应用在客户端效劳器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径8.提供用于管理、检查、优化数据库操作的管理工具9.可以处理拥有上千万条记录的大型数据库(2)MySQL的应用:与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的缺乏之处,如规模小、功能有限〔MySQLCluster的功能和效率都相比照拟差〕等,但是这丝毫也没有减少它受欢送的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有本钱。目前Internet上流行的网站构架方式是LAMP〔Linux+Apache+MySQL+PHP〕,即使用Linux作为操作系统,Apache作为Web效劳器,MySQL作为数据库,PHP作为效劳器端脚本解释器。由于这四个软件都是免费或开放源码软件〔FLOSS),因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。1.3APACHE介绍Apache是世界使用排名第一的Web效劳器软件。它可以运行在几乎所有广泛ApacheServer配置界面使用的计算机平台上。Apache源于NCSAd效劳器,经过屡次修改,成为世界上最流行的Web效劳器软件之一。Apache取自“apatchyserver〞的读音,意思是充满补丁的效劳器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理效劳器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为根底的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加效劳器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web效劳器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3Consortium、FinancialTimes等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用〔可以运行在几乎所有的Unix、Windows、Linux系统平台上〕以及它的可移植性等方面。Apache的诞生极富有戏剧性。当NCSAWWW效劳器工程停顿后,那些使用NCSAWWW效劳器的人们开始交换他们用于该效劳器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了ApacheGroup,后来这个团体在NCSA的根底上创立了Apache。Apacheweb效劳器软件拥有以下特性:支持最新的/1.1通信协议拥有简单而强有力的基于文件的配置过程支持通用网关接口支持基于IP和基于域名的虚拟主机支持多种方式的认证集成Perl处理模块集成代理效劳器模块支持实时监视效劳器状态和定制效劳器日志支持效劳器端包含指令(SSI)支持平安Socket层(SSL)提供用户会话过程的跟踪支持FastCGI通过第三方模块可以支持JavaServletsAPACHE有名的几个工程介绍:ServerJakartaStrutsTomcat1.4B/S架构介绍B/S架构软件的优势与劣势〔1〕、维护和升级方式简单。目前,软件系统的改良和升级越来越频繁,C/S系统的各局部模块中有一局部改变,就要关联到其它模块的变动,使系统升级本钱比拟大。B/S与C/S处理模式相比,那么大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在效劳器端,当企业对网络应用进行升级时,只需更新效劳器端的软件就可以,这减轻了异地用户系统维护与升级的本钱。如果客户端的软件系统升级比拟频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对效劳器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。〔2〕、系统的性能在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大局部工作由效劳器承当,这使得效劳器的负担很重。采用C/S结构时,客户端和效劳器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻效劳器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件〔也就是Web页面〕不便于编辑修改,给文件管理带来了许多不便。比方说很多人每天上“新浪〞网,只要安装了浏览器就可以了,并不需要了解“新浪〞的效劳器用的是什么操作系统,而事实上大局部网站确实没有使用windows操作系统,但用户的电脑本身安装的大局部是windows操作系统。〔3〕、系统的开发C/S结构是建立在中间件产品根底之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信平安等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。但是,与B/S结构相比,C/S技术开展历史更为“悠久〞。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。2.系统分析与设计2.1系统的功能设计合同管理系统的主要功能包括合同的录入,合同修改,合同的查询功能,按合同名称、签订合同的单位、合同的有效期合同到期后可邮件通知,合同到期后的停用,启用功能,合同的详细信息并且可以打印的功能,合同日志的查看,打印功能。系统功能具体如下:录入功能:允许管理员添加新的合同,包括合同的根本信息和乙方的信息。修改功能:允许管理员对合同的根本信息和乙方信息进行修改。查询功能:允许管理员对所有合同进行查询。查询方式按合同名称,合同状态,签订合同的单位以及合同的有效期来查询。另外还有可以按升序降序的排列。邮件功能:合同到期时,向合同乙方的管理员发送邮件提醒。停用/启用功能:合同到期后可以选择停用合同,续费后可以继续启用。打印功能:在合同的查看详细页面里设有打印按钮,可以打印此页面的合同内容。2.2系统的流程设计对此系统使用了控制权限,在页面开始加载的时候会判断是否登录,如果没有登录直接访问页面的会一律的跳转回登录页面。这样来可以提高系统的平安性。具体流程如下列图所示:返回添加合同返回访问页面时候判断是否有登录用户返回验证用户身份登录返回添加合同返回访问页面时候判断是否有登录用户返回验证用户身份登录登录失败登录成功没有有2.3系统流程图和功能图由于目前考虑到系统就是一个管理员操作的所以没有设定多用户的程序。网站管理员首先进行系统登录,登录进来以后,可以对合同进行添加,修改,查看等操作。网站的系统流程图如下:管理员登录管理员登录数据库输数据库合同添加入合同添加密合同日志查看合同搜索查看合同停用/启用合同修改登录成功码合同日志查看合同搜索查看合同停用/启用合同修改登录成功 读取数据前台html模板前台PHP程序前台html模板前台PHP程序系统流程图下面为系统的功能图:停用合同添加停用合同添加启用合同停用/启用启用合同停用/启用数据库数据库乙方合同修改乙方合同修改合同名称合同搜索查看合同名称合同搜索查看合同有效期合同有效期合同状态合同日志查看合同状态合同日志查看2.4系统功能结构分析根据客户的需求本系统一共分为合同的添加,合同的修改,合同的打印,合同的停用/启用以及合同的搜索查询和查看合同的日志这六个功能模块。管理员登录系统后便可以对这六块进行相应的操作。2.4.1添加合同该模块主要是对合同的添加进行的操作。管理员点击创立合同即可进入合同添加的前台页面,该页面主要需要管理员填写合同的根本信息,比方合同名称,乙方等等。还会填写乙方的一些信息比方管理员的联系方式等等。另外页面还做了一些效果比方合同日期的选择,不会让管理员自己输入。填写合同费用后,系统自动会填写数字的大写汉字。参加这些可以更好的提高用户体验。为管理员带来方便。2.4.2修改合同该模块主要是对合同的修改良行的操作。管理员点击合同详细的后可以进入详细的页面,在页面最下端有一个修改的按钮,管理员可以点击按钮进入修改页面,对合同的每个信息进行修改,然后点击提交完成操作。不想修改的信息就保存不动。这块也有一个JAVASCRIPT的用法,就是点击修改后带有文本框可以修改的表格显示,之前的表格隐藏2.4.3停用/启用合同该模块主要对合同的标识进行的操作。分为过期停用和已签订启用这两个状态。系统会根据签订的有效期来判断合同的过期时间。管理员可以把过期的合同置为停用的状态说明合同暂时为不可用,当乙方续费成功后管理员可以把合同的状态置为启用来说明合同从新生效。这样防止了删除合同后在想查询此合同数据库里没有的问题。2.4.4打印合同该模块主要对合同的打印进行了操作。在合同的详细页面最低端有打印的按钮,管理员点击此按钮可以出发JAVASCRIPT的打印功能,从而打印页面显示合同信息的表格。2.4.5查看日志该模块主要对合同进行一个统计功能,能够让管理员查看合同都做过哪项的操作。该功能在添加,修改,停用,启用后都会记录一条信息到数据库,以便管理员将来好进行查看。2.5数据库设计在写程序之前,数据库的设计是非常关键的。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求〔信息要求和处理要求〕。一个成功的管理系统,是由50%的业务+50%的软件组成,而50%的成功软件又由25%的数据库+25%的程序所组成,所以数据库设计的好坏是一个关键问题。如果把企业的数据比作生命所必须的血液,那么数据库的设计就是应用中最重要的一局部。好的数据库可以让程序变得更加的简单,也可以为操作起来所用的时间减少,可以保证效劳器的运行速度和网页的加载速度。实体和属性的定义:合同信息(合同编号,乙方,合同名称,合同的有效期开始时间,合同的有效期结束时间,效劳费用,效劳费用大写,支付说明,效劳器账号,效劳器中文名字,提供效劳器的类型,效劳器放置位置,乙方负责人姓名,乙方负责人,乙方负责人邮件,乙方管理员的姓名,乙方管理员,乙方管理员邮件,合同状态,创佳时间,修改时间,订单状态)上面定义了合同信息的主要属性,期中合同编号可以定义为自动增长的字段,作为主键。其他为合同的一些信息,合同状态为过期和签订,订单状态为停用和启用,分别用0和1作为标识。2.5.1数据库的设计本系统采用MYSQL为数据库来存储信息。涉及到的数据库名称是PKU_CONTRACT。期中有三个表分别为contract_order(合同信息表),log_order(合同的日志表),member(管理员信息表)。合同信息表存放合同的根本信息和签订合同的乙方的信息。日志表存放操作合同后产生的日志。管理员信息表存放是管理员的名称与密码。2.5.2合同信息表contract_order的设计合同信息表contract_order:此表用来存放合同的根本信息和签订合同的乙方的信息,下面列出本表的字段及字段类型和说明。合同信息表:contract_order字段名称数据类型字段说明order_id〔主键〕int(10)auto_increment自增idcompanyvarchar(255)乙方order_namevarchar(200)合同名称startdatedate合同有效期开始时间enddatedate合同有效期结束时间chargesvarchar(255)效劳费用daxievarchar(200)效劳费用大写Paymentvarchar(255)支付说明Accountvarchar(255)效劳器账号chinesevarchar(255)效劳器中文名字servertypevarchar(255)提供效劳器的类型localvarchar(255)效劳器放置位置chargenamevarchar(255)乙方负责人姓名Chargetelvarchar(255)乙方负责人chargeemailvarchar(255)乙方负责人邮件mangnamevarchar(255)乙方管理员的姓名mangtelvarchar(255)乙方管理员mangemailvarchar(255)乙方管理员邮件order_stateint(10)合同状态creatdatedate创立时间correctdatedate修改时间typeint(11)订单状态2.5.3合同日志表log_order的设计合同日志表log_order:此表用来存放合同被操作后产生的日志信息,其中字段order_id和合同表的order_id相对应。下面列出本表的字段及字段类型和说明。合同日志表:log_order字段名称数据类型字段说明id〔主键〕int(10)auto_increment自增idorder_idint(20)合同idedit_mangervarchar(255)修改者姓名edit_datedate修改日期contenttext内容typevarchar(255)类型2.5.4管理员表member的设计管理员表member:此表存放管理员的姓名和密码,目前只有admin这一个管理员。管理员表:member字段名称数据类型字段说明userid〔主键〕int(10)auto_increment管理员idusernamevarchar(200)管理员姓名passwordvarchar(200)管理员密码2.5.5合同信息表和合同日志表的关系合同日志表log_order里的order_id和合同信息表里的主键order_id是对应的关系。这样存入日志表里的合同只要存入order_id就可以了,不用存入其他的信息。想查询合同信息的时候可以根据order_id字段到合同信息表里查询对应的order_id即可。3.系统实现3.1系统运用的技术系统在编程开发方面运用一些目前较为流行的技术。比方PHP+SMARTY模板,JAVASCRIPT的JQUERY的框架等等。运用这些技术让程序开发变得更为简单,快捷。同事也方便以后的系统维护。SMARTY模板技术修改起来也会非常的容易。下面简单列举一些实力进行说明。3.1.1JQUERY的Ajax技术Ajax是一种创立交互式网页应用的网页开发技术,AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应用的规那么正在被重写。在本系统中管理员登录的模块就是运用Ajax技术提交的,下面是源代码分析:<scripttype="text/javascript"><!--//ajax提交functionOnsubmit(){ $("#message").empty();//此处为清空页面元素id为message的内容 varusername=$("#username").val(); varpassword=$("#pwd").val();//此处是得到username和pwd的值 $.ajax({ //ajax开始 type:"POST", //提交方式为post url:"login.php", //提交到login.php data:"username="+username+"&password="+password, //传值 success:function(msg){ $("#message").append(msg);//成功后回调的函数把返回的信息放入message处 } });}//判断回车document.onkeydown=getKeyCodefunctiongetKeyCode(event){ event=event?event:(window.event?window.event:null); if(event.keyCode==13){ Onsubmit(); }}//鼠标点击$(document).ready(function(){ $("#login").click(function(){ Onsubmit(); });});//--></script>以上这段代码就是登录的一个方法。其实ajax的提交我写到了Onsubmit这个函数里。另外还做一个判断用户点击回车后触发这个函数和点击登录按钮后触发这个函数的方法。3.1.2PHP+SMARTY让你的开发更简单Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它别离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑别离。简单的讲,目的就是要使PHP程序员同前端人员别离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的工程中显的尤为重要。下面介绍一下具体的应用:例如在合同的列表页里ContractList.php当从数据库取出所有信息以后在代码的最下面进行往模板上的赋值。$smarty->assign('arr',$arr);$smarty->assign(username,$username);的意思就是把变量$arr和$username赋值给一个变量arr和uername,而arr和username是可以再html模板中运用的变量。区别就是arr是数组而username是单个的变量。$smarty->display("ContractList.html");意思就是为php页面指定模板文件。当然要想用到这个方法必须还得引用smarty的类文件。在html模板里也运用到刚刚定义的变量就是这样:对于单个变量的username在html模板中可以写为{{username}}直接使用。对于数组arr那么必须使用循环语句使用例如:{{foreachfrom=$arritem=array}}{{$arraypany}}{{$array.order_name}}{{$array.charges}}等等这些是数组中的键值{{/foreach}}结尾这样php里定义的变量就可以成功的运用到html模板中了。3.2系统功能模块在这节里将具体详细的介绍系统的各个功能的实现。3.2.1用户管理用户方面目前只有admin一个管理员用户,没有做到多用户管理。系统唯一涉及到用户的就是首页的登录页面。具体的涉及的页面是index.php调用的模板是login.html。界面设计:首页的用户登录如下列图所示图1用户登录用户点击登录按钮或者按回车后都会触发functionOnsubmit(){ $("#message").empty();//此处为清空页面元素id为message的内容 varusername=$("#username").val(); varpassword=$("#pwd").val();//此处是得到username和pwd的值 $.ajax({ //ajax开始 type:"POST", //提交方式为post url:"login.php", //提交到login.php data:"username="+username+"&password="+password, //传值 success:function(msg){ $("#message").append(msg);//成功后回调的函数把返回的信息放入message处 } });}这个函数利用ajax的技术提交到login.php。后台功能实习:Login.php负责接收页面传过来的参数去数据库进行检索。$username=$_POST["username"];$password=$_POST["password"];是接收参数并赋值给变量,然后用sql语句〔select*frommemberwhereusername='".$username."'〕去数据库里的member表里进行匹配查找。PHP语言可以利用MYSQL的mysql_num_rows这个函数来获取返回的行数。如果行数为0那么说明没有此用户名这时向login.html返回没有该用户。而MYSQL的mysql_fetch_object函数可以将查询的结果赋值给一个标量在用变量去指向表里的字段。这样可以判断$password==$obj->password是否相等。如果相等登录成功跳转,不相等返回密码输入错误。这样一个登录的模块就完成了。3.2.2合同管理此处为系统中的重点局部是针对合同做的一系列的操作,期中包括合同的添加,修改,打印,停用,启用,查询,日志,打印等功能。涉及的一个最关键的文件就是ContractManage.php。所有的关于合同的后台操作都在这一个文件完成,是通过页面提交不同的action去进行不同的操作。创立合同此模块涉及到的文件有ContractAdd.php,ContractAdd.html和ContractManage.php。其中ContractAdd.html是ContractAdd.php的模板页。用户点击创立合同后会跳转到ContractAdd.php这时程序会自动调用到ContractAdd.html显示如下列图所示分为填写根本信息和乙方信息。图2创立合同填写完成后点击创立按钮,会把表单提交到ContractManage.php文件。而ContractManage.php文件会在接收传过来的action,创立合同的action为add,所以程序会执行add下的代码即执行插入的sql语句。同时会向日志的表中插入一条信息标记为插入的新合同。修改合同此模块设计到的文件有ContractManage.php,ContractView.html页面。期中ContractView.html为模板文件,查看详细和修改合同都是这个模板。用户可以点击列表页里最后一栏的查看详细,这是给ContractManage.php页面传一个action为view的参数,ContractManage.php通过action调用ContractView.html页面。页面显示为合同的详细信息,如下列图所示:图3合同详细页面管理员可以点击下方的修改按钮,此时会触发一个javascript的函数。$("#checkedit").click(function(){ $("#view").hide(); $("#edit").show(); });此函数的功能就是让显示的局部隐藏,修改的局部显示出来。函数执行完后页面就会变成如下列图所示:图4合同修改页面所有的信息全部变为可改的形式供管理员修改。修改完后点击确定按钮将信息提交到ContractManage.php页面此时action为edit,进行修改并存入数据库。停用/启用合同此功能涉及到的文件有ContractManage.php,ContractView.html页面。期中ContractView.html为模板文件。此功能的流程为先得到合同当前的状态,在通过状态来定义页面下方的按钮是停用还是启用。如图3所示的信息,在合同相信页面的最下方现在是停用的按钮。当合同过期后管理员可以点击停用按钮来停止合同。这里也是运用了jquery的ajax技术用来提交参数来停用或者启用合同。代码如下:$("#del").click(function(){ type=$("#type").val(); if(type==1){ me="确定停用该合同吗?"; } else{ me="确定启用该合同吗?"; } if(confirm(me)==true){ //运用了javascript的一个确认的函数 varorder_id,username; order_id=$("#order_id").val(); username=$("#username").val(); $.ajax({ type:"POST", url:"ContractManage.php", data:"action=del&order_id="+order_id+"&username="+username+"&type="+type, success:function(msg){ if(type==1){ alert('该合同停用成功'); } else{ alert('该合同启用成功'); }location.href="ContractList.php?username="+username; } }); } else{ returnfalse; } });此方法提交到ContractManage.php页面action为del来调用停用和启用的功能。查询合同此功能涉及到的文件有ContractSreach.php和ContractSreach.html两个文件。搜索的程序ContractSreach.php模板为ContractSreach.html。搜索合同分为按乙方,合同名称,合同有效期和合同状态来进行搜索。如下列图所示:图5合同的搜索同时还做了一个按升序降序排序的功能便于管理员的查看。程序中对提交的参数进行逐一的判断最后根据参数不同来拼出可供查询的sql语句。日志功能此功能是在合同被操作的情况下都会产生一个日志记录下合同变更的信息,操作人,变更时间等等。例如在修改合同后就会把修改的内容存入日志表里。首先修改的前台页面在每个input文本框里都会写一个onblur="getEditInput(this.id)“事件。这个事件是当光标移开文本框的时候触发的事件。然后把所有修改的内容存到一个数组里,数组以id为下标value为数组值。然后通过函数转换为字符串。转换函数如下:functiongetObject(o){ varresult=""; for(keyino){ result+=key+":"+o[key]+"&"; } returnresult;}然后点击提交按钮跳转的ContractManage.php的action为edit的代码段。然后执行完更新以后会执行代码$sql="insertintolog_order(order_id,edit_manger,edit_date,content,type)values(".$order_id.",'".$username."',NOW(),'".$edit_array."','更新')";mysql_query($sql);进行网日志里的插入。打印功能打印功能在合同的详细页面如上图3中有打印按钮。管理员点击打印会调用javascript的打印函数,链接打印机来执行打印。打印功能代码如下:functiondoPrint(){ //获得body的html bdhtml=window.document.body.innerHTML; //打印开始的标志 sprnstr="<!--startprint-->"; //打印结束的标志 eprnstr="<!--endprint-->"; //从打印开始的位置截取到末尾 prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); //从开始截取到打印结束的位置 prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //替换html window.document.body.innerHTML=prnhtml; //打印 window.print();}3.3系统前台页面这一节主要简单的介绍一下系统的前台页面,期中挑一个列表页,合同的相信页,和合同的搜索页来介绍。3.3.1合同列表页ContractList.php合同列表页主要是把所有的合同都列举出来供管理员查看,其中页面做了分页的功能。页面单间整洁,便于制作和观看。页面的制作工具为:phpotoshop和Dreamweaver。首先对设计人员设计的图片进行裁剪,然后用Dreamweaver来搭建页面〔用css+div的模式〕,然后ContractList.html做为模板页去调用php程序传过来的变量。列表页界面如下列图所示:图6合同列表页页面的左上角是系统的logo和名称,右侧是目前登录的管理员。下面左侧是目前页面内容的关键字,右侧的创立合同点击可以进入创立页面。在往下那么是搜索条,分为乙方,合同名称,合同有限期,合同状态的搜索。另外还有查看全部合同和查看所有日志的按钮。下面是一个排序的功能,可分为按时间的升序和降序。中间的内容局部是合同的列表,页面显示出的是乙方,合同名称,合同的状态,有限期和效劳的费用。要想看合同的相信信息可以点击操作栏的查看详细,进入详细页面。详细页面可以打印,可以修改合同。右下角是分页的功能显示,列出的当前页数和当前有多少项。下方是系统的底部。3.3.2合同详细页Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论