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 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
div移动 输入框不能输入的问题
Nov 19 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
JSF中confirm弹出框的用法示例介绍
Jan 07 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
微信小程序日历效果
Dec 29 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
Apr 19 Javascript
JS实现炫酷雪花飘落效果
Aug 19 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
Jul 09 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 simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
jQuery select控制插件
2009/08/17 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
Python入门篇之面向对象
2014/10/20 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
10张动图学会python循环与递归问题
2021/02/06 Python
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
Laravel中Kafka的使用详解
2021/03/24 PHP
可口可乐广告词
2014/03/20 职场文书
党委领导班子整改方案
2014/09/30 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
python+opencv实现目标跟踪过程
2022/06/21 Python