jQuery解决input超多的表单提交


Posted in Javascript onAugust 10, 2015

近段时间接到一个比较奇葩的需求,对方要求在企业站中加入一个类似word的表单,并供用户在线填写与提交。

仔细看了一下,该表单的字段高达一百多个,这个量级是相当可怕的。如果每个input手动去填写id和name的话,该是一个多么可怕的体力活啊。

反复思考了一下,为避免苦逼的去逐个填写input的id与name,决定用JS配合PHP的方式来解决这个表单一连串的提交工作。

表单组成部分

表单首先按照客户的要求,将需要填写的表格与选项按照word文档的原型进行布局,使其符合用户体验,如下图:

jQuery解决input超多的表单提交

(上图只是截取表单的一小部分作为范例,实际上这个表单是无比之大的)

当表单的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的方式将获取的传参处理成数组再插入数据库会比较方便。

Javascript 相关文章推荐
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
Js可拖拽放大的层拖动特效实现方法
Feb 25 Javascript
JS代码防止SQL注入的方法(超简单)
Apr 12 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
Jul 10 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
javascript二维数组和对象的深拷贝与浅拷贝实例分析
Oct 26 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
Vue文本模糊匹配功能如何实现
Jul 30 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 #Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
Aug 10 #Javascript
javascript中caller和callee详解
Aug 10 #Javascript
jQuery实现购物车表单自动结算效果实例
Aug 10 #Javascript
javascript中$(function() {});写与不写有哪些区别
Aug 10 #Javascript
jQuery中$(function() {});问题详解
Aug 10 #Javascript
jquery实现鼠标滑过后动态图片提示效果实例
Aug 10 #Javascript
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
zTree树形插件异步加载方法详解
2017/06/14 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
python中模块查找的原理与方法详解
2017/08/11 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
python分数表示方式和写法
2019/06/26 Python
python 循环数据赋值实例
2019/12/02 Python
tensorflow 模型权重导出实例
2020/01/24 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
五一服装活动方案
2014/01/11 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
代理协议书范本
2014/04/22 职场文书
2016高考寄语集锦
2015/12/04 职场文书
民事调解协议书
2016/03/21 职场文书
详解Redis瘦身指南
2021/05/26 Redis
OpenCV实现反阈值二值化
2021/11/17 Java/Android