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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
第十三节--对象串行化
Nov 16 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
PHP 全角转半角实现代码
May 16 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
PHP命名空间和自动加载类
Apr 03 PHP
分享php多功能图片处理类
May 15 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
Python实现获取命令行输出结果的方法
2017/06/10 Python
tensorflow多维张量计算实例
2020/02/11 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
二年级数学教学反思
2014/01/21 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
青奥会口号
2014/06/12 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
天气温馨提示语
2015/07/14 职场文书
学校少先队工作总结
2015/08/12 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python