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 相关文章推荐
PHP5.0对象模型探索之抽象方法和抽象类
Sep 05 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
解析php常用image图像函数集
Jun 24 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 PHP
PHP实现页面静态化深入讲解
Mar 04 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两种无限分类方法实例
2015/04/21 PHP
JavaScript 原型继承
2011/12/26 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
Django权限机制实现代码详解
2018/02/05 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
django 模版关闭转义方式
2020/05/14 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
法定代表人授权委托书范文
2014/09/22 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
事业单位聘任报告
2015/03/02 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
用Python实现Newton插值法
2021/04/17 Python
Python上下文管理器Content Manager
2021/06/26 Python
MySQL约束超详解
2021/09/04 MySQL
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers