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 相关文章推荐
关于恒等于(===)和非恒等于(!==)
Aug 20 Javascript
JavaScript 数组的 uniq 方法
Jan 23 Javascript
javascript 动态设置已知select的option的value值的代码
Dec 16 Javascript
JavaScript中for循环的使用详解
Jun 03 Javascript
全面解析Bootstrap中form、navbar的使用方法
May 30 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 Javascript
JS中跳出循环的示例代码
Sep 14 Javascript
详解Vue单元测试case写法
May 24 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
浅谈Angular7 项目开发总结
Dec 19 Javascript
JavaScript鼠标悬停事件用法解析
May 15 Javascript
使用Vant完成Dialog弹框案例
Nov 11 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
js 深拷贝函数
2008/12/04 Javascript
javascript调试说明
2010/06/07 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
策划总监岗位职责
2014/02/16 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
家长对老师的感言
2014/03/11 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android