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 md5下16位和32位的实现代码
Apr 09 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
php下载文件的代码示例
Jun 29 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
一文搞懂PHP中的抽象类和接口
May 25 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
JS实现购物车特效
2017/02/02 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
wxPython实现文本框基础组件
2019/11/18 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
英语专业学生的自我评价
2013/12/30 职场文书
先进班集体事迹材料
2014/12/25 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
中秋晚会致辞
2015/07/31 职场文书