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 相关文章推荐
新鲜出炉的js tips提示效果
Apr 03 Javascript
js中判断用户输入的值是否为空的简单实例
Dec 23 Javascript
jQuery 插件开发指南
Nov 14 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
jQuery下拉菜单的实现代码
Nov 03 Javascript
BootStrap3使用错误记录及解决办法
Dec 22 Javascript
Javascript实现基本运算器
Jul 15 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
VUE路由动态加载实例代码讲解
Aug 26 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 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/11/16 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js实现拖拽效果
2015/02/12 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
node和vue实现商城用户地址模块
2018/12/05 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
python append、extend与insert的区别
2016/10/13 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python闭包思想与用法浅析
2018/12/27 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
护士演讲稿优秀范文
2014/04/30 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
会议邀请函
2015/01/30 职场文书
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript