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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
php 信息采集程序代码
Mar 17 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
pdo中使用参数化查询sql
Aug 11 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
php json转换成数组形式代码分享
Nov 10 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 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实现rc4加密算法代码
2012/04/25 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
vue组件间通信解析
2017/03/01 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
vue实现购物车案例
2020/05/30 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
SQL SERVER面试资料
2013/03/30 面试题
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
毕业生就业推荐信范文
2013/12/01 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python