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 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
javascript之对系统的toFixed()方法的修正
May 08 Javascript
jQuery解决iframe高度自适应代码
Dec 20 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
Vue项目中如何引入icon图标
Mar 28 Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
vue实现分页的三种效果
Jun 23 Javascript
javascript操作向表格中动态加载数据
Aug 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
杏林同学录(一)
2006/10/09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
js函数调用常用方法详解
2012/12/03 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
Python实现进程同步和通信的方法
2018/01/02 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
python自动生成证件号的方法示例
2021/01/14 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
民政局个人整改措施
2014/09/24 职场文书
庆六一开幕词
2015/01/29 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
办公室主任个人总结
2015/02/28 职场文书
解除合同协议书范本
2016/03/21 职场文书