时间:2021-05-26
近段时间接到一个比较奇葩的需求,对方要求在企业站中加入一个类似word的表单,并供用户在线填写与提交。
仔细看了一下,该表单的字段高达一百多个,这个量级是相当可怕的。如果每个input手动去填写id和name的话,该是一个多么可怕的体力活啊。
反复思考了一下,为避免苦逼的去逐个填写input的id与name,决定用JS配合PHP的方式来解决这个表单一连串的提交工作。
表单组成部分
表单首先按照客户的要求,将需要填写的表格与选项按照word文档的原型进行布局,使其符合用户体验,如下图:
(上图只是截取表单的一小部分作为范例,实际上这个表单是无比之大的)
当表单的html布局完成之后,我们就需要开始对这些表单的input设定id与name用于表单提交了。
前言中已经说道到了input非常多,所以我们这里采用JS的方式来为input自动添加id与name。代码如下(jquery方式):
$(document).ready(function(){var inputNum = 0;$(‘input').each(function(){$(this).attr({name:‘val'+inputNum,id:‘val'+inputNum});inputNum++})})通过js处理后,该页面的所有input都会自动按照自增1的方式对id和name进行添加。至此,这个表单的基本上可以正常使用了。(frome咱就不解释了,程序员都懂的。)
表单GET部分
OK,上面已经可以正常的把表单提交到PHP程序中进行处理了。当然上面的办法也适用于任何一种web程序,比如说.net,jsp,asp等等…..
下一步我们就需要对提交过来的字符串进行拆解,以获取表单内的值。关于如何获取表单的传值,本文就不做解释了。
由于表单传过来的值也是N个,所以我们也不可能一个一个的去写数组变量来获取这些值,所以这里也需要用到一些办法来处理。
好,下面我们来说正事。首先我们按照之前的js程序逻辑来思考,如何让这些数组每个自增1来实现数组的输出。
程序代码如下:
<?php$num = 0; //初始化计数变量$_REQUEST[‘val'.$num]; $num++; //插入到需要获取值的地方,每个需要获取传值的地方重复使用这串代码即可?>这组代码主要用在表单input与request顺序一致的情况下使用,如果不能一一对应顺序的话,则会出现混乱。因此用的时候需要慎重!
提交数据库的时候可以考虑使用foreach的方式将获取的传参处理成数组再插入数据库会比较方便。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用jquery的submit()函数提交form表单时,总是无法提交表单。这个问题太诡异了,是因为form中提交表单的input的name属性为submit,
表单中有多个,提交表单时需要判断其中至少要有一个input已经选择好文件。复制代码代码如下:使用jQuery进行判断:复制代码代码如下:varfileFlag=
在进行表单提交时,会遇到在提交前增加额外参数的情况,对此有如下几种解决方法:1.在表单里使用hidden的input,将参数放到里面。缺点:在form表单里会增
form提交时隐藏input发生的错误问题描述在form表单提交的时候,有些input标签被隐藏,表单验证过程中会出现Aninvalidformcontrolw
下面介绍jquery提交表单mvc3后台处理示例。 JQuery提交表单: 代码如下:$(document).ready(function(){$("#