PHP中实现接收多个name相同但Value不相同表单数据实例


Posted in PHP onFebruary 03, 2015

最近在一个询盘留言管理系统时候一个问题,留言的前台的表单当中出现很多name值相同的input框,这些框是由用户填写的各不相同的值,现在要迁移到php平台上,而且要求不能改变前台的任何表单(因为用到这个表单的网站实在是太多了,所以必须要考虑转移的兼容性,就连form的提交地址也不能变,必须是提交到某个asp页面上)。form提交地址问题,可以用伪静态或其它方法直接解决。由于以前的系统是由asp做的,asp在处理相同name值的表单的时候,是直接用逗号把前台提交的值连起来,而php却不一样,它接收相同的name的input的时候,是最后一个把前面的值给覆盖掉了。那么,怎么样在不改写前台的基础上,做到能接受到所有name相同的input的值呢?当时脑子里浮现两个想法,第一个是让这个input的name以数组的方式传到后台,然后作出处理,但是很快被否定掉了,因为这样也必须要改动前台的代码,让
<input type="text" name="a" />改成<input type="text" name="a[]" />。第二个想法是php配置当中,有没有类似的设置可以让php像asp这样处理相同name值的表单,查了半天资料,也没有找到。

最后发现,只能退而求其次,稍微改动一下前台,把name换成数组,幸好这样去用的网站并不多。那么接下来就是后台处理数据的问题了,前台的name有一部分改了,这时候就会出现一种情况,php不知道由form提交过来的是字符串还是数组,那么怎么样去做呢,我的办法是写一个函数:

function input_treat($input){
 if(gettype($input)=="string"){
 return htmlentities(trim($input),ENT_QUOTES);
 }else if(gettype($input)=="array"){
 $nd="";
 foreach($input as $v){
  $nd .=htmlentities(trim($v),ENT_QUOTES)." ";
 }
 return $nd;
 }else{
 return false;
 }
}

用input_treat()函数去处理GET或者POST过来的值,如果是字符串,那么把字符串处理一下返回,如果是数组,那么遍历这个输入,用空格把数组的每个元素连起来,然后返回整个连起来的字符串。

这样,整个需求就实现了,缺点是对一部分使用相同name表单的网站必须要更改一下数据,如果你有更好的方法,欢迎和我留言沟通。

PHP 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
PHP获取毫秒级时间戳的方法
Apr 15 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
PHP7修改的函数
Mar 09 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 #PHP
php上传中文文件名乱码问题处理方案
Feb 03 #PHP
php上传文件常见问题总结
Feb 03 #PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 #PHP
php对象在内存中的存在形式分析
Feb 03 #PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 #PHP
php格式化金额函数分享
Feb 02 #PHP
You might like
用PHP读取RSS feed的代码
2008/08/01 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
理解javascript异步编程
2016/01/27 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
js实现全选和全不选
2020/07/28 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
Python 迭代器与生成器实例详解
2017/05/18 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python代码过长的换行方法
2018/07/19 Python
Python之列表实现栈的工作功能
2019/01/28 Python
python 字符串常用函数详解
2019/09/11 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
幼师自荐信范文
2013/10/06 职场文书
儿科护士实习自我鉴定
2013/10/17 职场文书
入党介绍人评语
2014/05/06 职场文书
ktv好的活动方案
2014/08/15 职场文书
企业百日安全活动总结
2015/05/07 职场文书
田径运动会通讯稿
2015/07/18 职场文书