PHP处理大量表单字段的便捷方法


Posted in PHP onFebruary 07, 2015

关于程序开发中的表单批量提交策略
很多时候一个表单太多的字段,如何能够高效获取表单字段,也为如何提神开发的效率和统一性?

比如一个系统的某个有26个字段,那么我用表单的名称用26个a到z的字母,

你是选择 <input type="text" name="a">,<input type="text" name="a">,……,<input type="text" name="z">的传统形式来做吗?

但是这种情况下如果做批量数据插入就不会有那么简洁了,
因为插入或者编辑操作会是这样的语句:特别是这样长得蛋疼的SQL字符串更悲催。

$sql="INSERT kele_table(a,b,……,z) value(a='$a',b='$b',……,z='$z')";//这样写很长铁牛用省略号标示

$sql="UPDATE SET kele_table(a='$a',b='$b',……,z='$z') where id=$id";

这样子写的话挺折腾的,字符串太长

用下面一种方法更好:
要点1:对整个提交的表单字段使用数组模式。

<input type="text" name="setting[a]">,……,<input type="text" name="setting[z]">

要点2:

PHP后台程序通过POST接收$setting数组

要点3:

插入表单字段展示

$fields=array('a','b',……,'z');//这个是特意设置校验字典,校验提交的字段是否存在

foreach($setting as $k=>$v) {

            if(in_array($k, $fields)) { $sqlk .= ','.$k; $sqlv .= ",'$v'"; }

        }

        $sqlk = substr($sqlk, 1);

        $sqlv = substr($sqlv, 1);

    $sql="INSERT INTO kele_table ($sqlk) VALUES ($sqlv)";

更新表单字段展示

$sql = '';

        foreach($setting as $k=>$v) {

            if(in_array($k, $fields)) $sql .= ",$k='$v'";

        }

 $sql = substr($sql, 1);

 $sql="UPDATE kele_table SET $sql WHERE id=$id";
PHP 相关文章推荐
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
PHP常用的文件操作函数经典收藏
Apr 02 PHP
解析php中curl_multi的应用
Jul 17 PHP
php根据年月获取季度的方法
Mar 31 PHP
php解决约瑟夫环示例
Apr 09 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
两个php日期控制类实例
Dec 09 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
PHP脚本自动识别验证码查询汽车违章
Dec 20 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
php 获取xml接口数据的处理方法
May 31 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
PHP生成压缩文件实例
Feb 07 #PHP
PHP实现股票趋势图和柱形图
Feb 07 #PHP
PHP中的闭包(匿名函数)浅析
Feb 07 #PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 #PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 #PHP
迁移PHP版本到PHP7
Feb 06 #PHP
php include类文件超时问题处理
Feb 06 #PHP
You might like
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Jquery插件写法笔记整理
2012/09/06 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
js实现双色球效果
2020/08/02 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python同步windows和linux文件
2019/08/29 Python
联强国际笔试题面试题
2013/07/10 面试题
清华大学自主招生自荐信
2014/01/29 职场文书
医学类个人求职信范文
2014/02/05 职场文书
中学生个人自我评价
2014/02/06 职场文书
三八妇女节活动总结
2014/05/04 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
教师调动申请报告
2015/05/18 职场文书
北京青年观后感
2015/06/15 职场文书
工作年限证明范本
2015/06/15 职场文书
整脏治乱工作简报
2015/07/21 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android