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 相关文章推荐
Flash对联广告的关闭按钮讨论
Jan 30 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
Javascript变量函数浅析
Sep 02 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
Javascript中replace()小结
Sep 30 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
Vue系列:通过vue-router如何传递参数示例
Jan 16 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
Jul 20 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 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
PHP个人网站架设连环讲(四)
2006/10/09 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
python requests使用socks5的例子
2019/07/25 Python
postman传递当前时间戳实例详解
2019/09/14 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
给老婆的婚前保证书
2014/02/01 职场文书
借款协议书范本
2014/04/22 职场文书
项目投资建议书
2014/05/16 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
公司人事管理制度
2015/08/05 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
Go各时间字符串使用解析
2021/04/02 Golang