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 相关文章推荐
PHP的ASP防火墙
Oct 09 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
为你总结一些php信息函数
Oct 21 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
php轻松实现文件上传功能
Mar 03 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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 VS ASP
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php 短链接算法收集与分析
2011/12/30 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
详解python单例模式与metaclass
2016/01/15 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
Python实现的rsa加密算法详解
2018/01/24 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
成绩单家长评语大全
2014/04/16 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书