admin 管理员组

文章数量: 1087139


2024年6月12日发(作者:电机异步和同步)

龙源期刊网

Web系统开发中表单数据批量处理方法设

计与实现

作者:聂庆鹏

来源:《电脑知识与技术》2017年第10期

摘要:在Web系统开发过程中,表单数据处理操作十分频繁。在一般处理模式下,各种

表单数据需要逐个接收和处理(主要指数据库处理),带来大量代码冗余。并且在表单项数量

很大的情况下,人工编写代码极易出错,极大降低代码编写和调试效率。该文以PHP语言为

例,提出了一种对能够表单数据进行高效的批量接收和处理方法,并给出了具体实现代码,在

实践中产生了良好效果。

关键词:Web系统;表单数据;自动处理;PHP

中图分类号:TP311

文献标识码:A

文章编号:1009-3044(2017)10-0204-01

1.问题分析

在Web系统开发中,不论使用何种Web编程语言,往往都涉及大量的数据添加、修改操

作,都需要使用表单(Form)机制来实现。在复杂的Web系统中,表单操作十分频繁,以笔

者曾参与的某个地市级小型业务系统为例,整个项目中有超过100个不同的表单需要处理,每

个表单包含20-30个不等的表单项。按照PHP语言中正常的表单数据处理方式,需要对表单数

据进行逐个手工接收和处理(PHP中可以通过配置参数使得提交的表单自动注册为服务器变

量,不需要进行手工接收,但这种方式因存在巨大安全隐患已经在PHP4之后被默认禁用,因

此本文不考虑这种情况)。例如,有表单A,拥有数据项A1-A10共10项,那么需要有以下

HTML表单代码:

以上例子中,为表示方便,表单项和变量名称具有顺序性和规律性,完全可以用循环的方

式简化处理代码,但在实际应用中,为了使变量名望文知义,往往不使用类似A1-A10这样毫

无意义的命名方式,而是用类似username、password、content之类的具有明确含义的名称。显

而易见,在这种处理方式下,存在以下3个方面的问题:

1)代码冗余。由于大量的表单项需要接收、处理,以及构造SQL语句,需要编写大量重

复性代码,在某些业务逻辑较为简单的程序中,表单处理代码量甚至超过了业务逻辑代码量,

带来大量代码冗余,增加了编程工作量。

龙源期刊网

2)书写错误。当表单项数量很大时,在接收、处理数据时需要多次书写变量名、数据库

字段名等,稍有不慎就会拼写出错,而且这类错误属于语义错误而非语法错误,代码编辑器和

人工检查均不易发现,给系统开发、调试带来了很大困扰。

3)可扩展性差。代码耦合度高,程序开发完毕后,如果再增加或者减少表单项,需要对

代码进行多处修改,不利于程序的可扩展性。

2.解决思路与方法

首先,对HTML表单项名称进行处理,使其既保留“望文知义”的特点,又能便于批量接

收和处理。同时,一个表单中不是所有表单项的数据都需要处理,在表单项名称设计中应当予

以区分,使得PHP处理程序只处理需要的数据。其次,在PHP接收表单数据时,采用遍历$-

POST数组的方式,根据命名规则取出需要处理的数据,并建立对应的变量名,存人数据。最

后,在进行SQL语句构建时,使用与变量名称相一致的字段名称,根据需要动态构建Insert或

Update语句,使用自定义函数的方式进行调用。具体实现过程如下:

1)HTML表单项的处理

为实现数据自动化处理,首先在表单中将每个需要写入数据库的表单项名称统一为一种格

式。例如,用“v-”作为需要处理的表单名称的前缀,不需要处理的表单不加前缀。如:

2)PHP数据接收处理

在数据库操作中,无论是是Insert还是Update,都需要首先确定要操作的字段名称列表。

根据表单命名规律,可以编写自定义函数getFeildFromPost,将所有v一开头的表单从整个

$_POST数组表单项集合中分离出来,函数核心代码如下。

3.结语

本文提出的对表单数据进行批量处理的方法,对于Web系统开发中的海量表单处理具有

很强的现实意义,可以产生三个方面的效益:一是极大降低代码书写量,提高编码效率,可将

表单处理代码从几十到几百行简化为2行;二是大大提高了代码的可维护性,后期扩展表单项

时PHP代码不需要做任何修改;三是具有很好普适性,不论使用何种Web编程语言,不论是

$_POST表单数据还是$_GET数据,均可以采用相同方法进行处理。

龙源期刊网

龙源期刊网


本文标签: 表单 处理 需要 代码 数据