最近收到一个很精彩的需求,对方要求给企业站添加一个类似word的表单,让用户填写后在线提交。
仔细看,这种形式的字段有一百多个,相当可怕。如果每次输入都手动填写id和姓名,那将是一项可怕的体力活动。
反复思考后,为了避免必须逐个填写输入的id和名称,我决定用JSP配合PHP来解决这个表单的一系列提交工作。
表单组件
首先,根据客户的要求,按照word文档的原型布局需要填写的表单和选项,以符合用户体验,如下图所示:
(上图只是截取表单的一小部分作为例子,但实际上这个表单是极其庞大的。)
表单的html布局完成后,我们需要开始为表单提交设置这些表单的输入id和名称。
前言中已经提到输入很多,所以我们使用JS自动添加id和名称进行输入。代码如下(jquery模式):
$(文档)。ready(function(){ var inputNum=0;$(“输入”)。每个(函数(){$(this))。attr({name:'val' inputNum,id : ' val ' InputNum });input num })})js处理后,这个页面上的所有输入都会以1递增的方式自动添加id和名称。此时,表单基本可以正常使用。(弗洛姆,我就不解释了。程序员都知道。)
获取表单的一部分
好的,表单可以提交给PHP程序正常处理。当然,上述方法也适用于任何一种web程序,比如。net、jsp、asp等等….
接下来,我们需要分解提交的字符串以获得表单中的值。本文不会解释如何获取表单的传递值。
由于表格中还有n个值,我们不可能一个一个写数组变量来得到这些值,所以这里需要一些方法。
好了,让我们言归正传。首先,根据前面的js程序逻辑,我们思考如何将这些数组中的每一个增加1,实现数组的输出。
程序代码如下:
?PHP $ num=0;//初始化计数变量$ _ request ['val '。$ num];$ num//把它插入到需要取值的地方,在每个需要取传递值的地方重用这串代码?这组代码主要用于表单输入和请求顺序一致时。如果没有一一对应,就会出现混淆。因此,要谨慎使用!
提交数据库时,可以考虑使用foreach将获取的参数处理成数组,并插入到数据库中。