php 在处理 form 表单时提交多个 name 属性值相同的 input 标签 如何解决
一 问题
在公司的开发过程中,遇到了一个问题:如何处理 form 表单提交了多个 name 属性值相同的 input 标签?源码如下(源码是在 form 表单之中的):
代码如下 | 复制代码 |
<!--{loop$address$index$one}--> <divclass="address_item"> <p> <label> <input type="hidden"name="express_price"value="{$one['express_price']}"/> <input type="hidden"name="state_fare"value="{$one['state_fare']}"/> <input type="hidden"name="id"value="{$one['id']}"/> <input type="radio"<!--{if$one['default']=='Y'}-->checked<!--{/if}-->name="address"value="{$one['id']}"/><span name="mobile">{$one['mobile']}</span> </label> </p> </div> <!--{/loop}--> |
二 解决方法
在上述源码中,通过 loop 循环,在 form 表单中生成了多个name属性值相同的 input 元素,当点击提交时,后台的 php 文件使用 $_POST 仅能获取到一个 div 元素中的 input元素传过来的值,但是,radio 类型的 input 元素传过来的值一定是被选中的那一个。据此,修改上述源码中一些 input 元素的相同 name 属性值为数组,再在后台 php 文件通过被选中的 radio 类型的 input 元素的 name 属性值,确定所传过来的整个 div 元素。修改后的代码如下:
代码如下 | 复制代码 |
<!--{loop$address$index$one}--> <divclass="address_item"> <p> <label> <input type="hidden"name="express_price[]"value="{$one['express_price']}"/> <input type="hidden"name="state_fare[]"value="{$one['state_fare']}"/> <input type="hidden"name="id[]"value="{$one['id']}"/> <input type="radio"<!--{if$one['default']=='Y'}-->checked<!--{/if}-->name="address"value="{$one['id']}"/> <span name="mobile">{$one['mobile']}</span> </label> </p> </div> <!--{/loop}--> |
php 文件:
代码如下 | 复制代码 |
$key= 0; $address_id=intval($_POST["address"]); foreach($_POST['id']as$k=>$v) { if($v==$address_id) $key=$k; } $_POST['express_money'] =$_POST['exporess_price'][$key]; |
以上所述是小编给大家介绍的解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题,希望对大家有所帮助。在此也非常感谢大家对本网站的支持!
这篇文章主要为大家详细介绍了php使用curl实现简单模拟提交表单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下php 使用curl 进行简单模拟提交表单,供大家参考,具体内容如下
代码如下 | 复制代码 |
//初始化curl $ch= curl_init(); $url='xxx' $option= [ CURLOPT_URL =>$url, CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => 1, ]; curl_setopt_array($ch,$option); $output= curl_exec($ch); preg_match_all('/Set-Cookie: (.*);/i',$output,$str);//正则匹配 //如果有token的话就获取token preg_match('/token = \"(.*)\"/i',$output,$token); if(empty($str)) { returnfalse; } $cook=$str[1]; $cookie= implode('',$cook);
$up_url='xxx' $post_data= [ 'name'=>'test_', 'tel'=>�', 'email'=>'qqhahadfdfads@163.com', 'message'=>'this is my message;', '_token'=>$token[1], ]; $options= [ CURLOPT_URL =>$up_url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 1, CURLOPT_USERAGENT =>"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36", CURLOPT_COOKIESESSION => 1, CURLOPT_POST => 1, CURLOPT_POSTFIELDS =>$post_data, CURLOPT_COOKIE =>$cookie ]; curl_setopt_array($ch,$options); $res= curl_exec($ch); // $info = curl_getinfo($ch); if($res=== FALSE) { p('curl Error: '. curl_error($ch)); } curl_close($ch); p($res); |
取自基于laravel开发的一个网站, laravel中表单中有一个csrf_token 的. 所以就得获取token, 还有带上cookie
这里注意的是, 不能同时初始化两个curl, 否则token或者cookie会发生变化, 如果你需要初始化两个curl的话, 可以使用CURLOPT_COOKIEJAR设置. [详情看手册]
然后运行下:binggo
使用curl时, 比较重要的就是一个cookie的应用, 翻了下手册, 设置cookie的就有四个...CURLOPT_COOKIESESSION、CURLOPT_COOKIE、CURLOPT_COOKIEFILE、CURLOPT_COOKIEJAR
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。
本篇文章主要介绍了PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图等的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧JpGraph简介
JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序。
JpGraph的配置
(1)修改文件php.ini
在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph。
(2)检查PHP是否支持GD库
在php.ini文件中找到语句;extension=php_gd2.dll。把上述语句前的;号去掉,即去掉注释。如果因为PHP版本不同而找不到此语句,则可直接添加extension=php_gd2.dll
(3)修改文件jpgraph_gb2312.php
找到函数:function gb2utf8($gb)
把函数修改为:
代码如下 | 复制代码 |
functiongb2utf8($gb) { return$gb; } |
即不使用gb2编码方式转utf8方式的那段代码。
折线图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_line.php");
$data1=array(523,634,371,278,685,587,490,256,398,545,367,577);//第一条曲线的数组
$graph=newGraph(500,300); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->img->SetMargin(60,30,30,70);//设置图像边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$lineplot1=newLinePlot($data1);//创建设置两条曲线对象 $lineplot1->value->SetColor("red"); $lineplot1->value->Show(); $graph->Add($lineplot1);//将曲线放置到图像上
$graph->title->Set("CDN流量图"); //设置图像标题 $graph->xaxis->title->Set("月份");//设置坐标轴名称 $graph->yaxis->title->Set("流 量(Gbits)"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(10); $graph->yaxis->title->SetMargin(10);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth()); $graph->Stroke();//输出图像 ?> |
柱状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_bar.php");
$data=array(19,23,34,38,45,67,71,78,85,87,96,145); $ydata=array("一","二","三","四","五","六","七","八","九","十","十一","十二");
$graph=newGraph(500,300);//创建新的Graph对象 $graph->SetScale("textlin");//刻度样式 $graph->SetShadow(); //设置阴影 $graph->img->SetMargin(40,30,40,50);//设置边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$barplot=newBarPlot($data);//创建BarPlot对象 $barplot->SetFillColor('blue');//设置颜色 $barplot->value->Show();//设置显示数字 $graph->Add($barplot);//将柱形图添加到图像中
$graph->title->Set("CDN流量图"); $graph->xaxis->title->Set("月份");//设置标题和X-Y轴标题 $graph->yaxis->title->Set("流 量(Mbits)"); $graph->title->SetColor("red"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(5); $graph->xaxis->SetTickLabels($ydata);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD); $graph->Stroke(); ?> |
饼状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_pie.php"); require_once("jpgraph/jpgraph_pie3d.php");
$data=array(19,23,34,38,45,67,71,78,85,87,90,96);
$graph=newPieGraph(550,500); $graph->SetShadow();
$graph->title->Set("CDN流量比例"); $graph->title->SetFont(FF_SIMSUN,FS_BOLD);
$pieplot=newPiePlot3D($data);//创建PiePlot3D对象 $pieplot->SetCenter(0.4, 0.5);//设置饼图中心的位置 $pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例 $graph->Add($pieplot); $graph->Stroke(); ?>
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
本篇文章主要介绍了PHP读取Excel类文件的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的。但是每一种的操作必然都是不同的,可原理应该都是大同小异。
这个文件夹里包含的就是PHPExcel类文件
,在外面还有一个入口PHP文件
处理机制:1.读取Excel文件
2.获取最大行号和最大列号
3.通过行数循环里面嵌套列数循环来用特殊符号拼接每个小表格里面的数据得到一个字符串
4.然后使用explode拆分函数将字符串拆分后就得到了一个二维数组(即表格里面的数据)。
代码示例
代码如下 | 复制代码 |
$path="/wamp/www/xiong/hadf"; if(is_dir($path)){ echo"存在"; }else{ mkdir($path, 0777, true); echo"chuangji"; } require_once"./PHPExcel.php"; $filePath="./1233.xlsx"; $PHPReader=newPHPExcel_Reader_Excel2007(); if(!$PHPReader->canRead($filePath)) { $PHPReader=newPHPExcel_Reader_Excel5(); if(!$PHPReader->canRead($filePath)) { echo'no Excel' exit; } } $PHPExcel=$PHPReader->load($filePath); /**读取excel文件中的第一个工作表*/ $currentSheet=$PHPExcel->getSheet(0); /**取得最大的列号*/ $allColumn=$currentSheet->getHighestColumn(); // echo $allColumn;exit; /**取得一共有多少行*/ $allRow=$currentSheet->getHighestRow(); /**从第二行开始输出,因为excel表中第一行为列名*/ $val='' for($currentRow= 1;$currentRow<=$allRow;$currentRow++) { /**从第A列开始输出*/ for($currentColumn='A'$currentColumn<=$allColumn;$currentColumn++) { $val.=$currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow);//->getValue();/**ord()将字符转为十进制数*/ $val.="&%|%&"; /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将GBK编码转为UTF-8编码输出*/ //$val .= iconv('GBK','UTF-8', $val); } $val.="\n"; }$member_info_arr=explode("\n",$val); unset($member_info_arr[count($member_info_arr) - 1]); $present_time=date("Y-m-d H:i:s"); if(count($member_info_arr) <= 0) { sys_msg_json(0,"会员信息文件中无数据,请添加"); } unset($member_info_arr[0]); // var_dump($member_info_arr);exit; foreach($member_info_arras$key=>$val) { $arr[$key] =explode("&%|%&",$val); } // var_dump($arr);exit; foreach($arras$key=>$val) { unset($arr[$key][2]); } var_dump($arr); |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
相关文章
- 有一个项目要获取页面中所有img标签中的图片地址,这里我们使用到了preg_match_all正则函数,然后看我下面的一些参数即可实现了。 例 代码如下 复制代码 ...2016-11-25
- 这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)
批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。这篇文章主要介绍了BAT批处理判断服务是否正常运行(批处理命令综合应用),需要的朋友可以参考下...2020-06-30- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
- file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。今天说的这篇是讲超时的,确实在...2013-10-04
- 这篇文章主要介绍了C#多线程中的异常处理操作,涉及C#多线程及异常的捕获、处理等相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
- 这篇文章主要介绍了Python同时处理多个异常的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-29
C#异常处理中try和catch语句及finally语句的用法示例
这篇文章主要介绍了C#异常处理中try和catch语句及finally语句的用法示例,finally语句的使用涉及到了C#的垃圾回收特性,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了C# 如何设置label(标签)控件的背景颜色为透明,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2020-12-08
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
这篇文章主要介绍了matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23- 这篇文章主要介绍了python如何用moviepy对视频进行简单的处理,帮助大家更好的利用python处理视频,感兴趣的朋友可以了解下...2021-03-11
- 这篇文章主要介绍了C#删除UL LI中指定标签里文字的方法,涉及C#针对页面HTML元素进行正则匹配与替换的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 用灵动标签(e:loop)可以实现各种幻灯效果,本节讲解制作幻灯的基本方法。 如本站JS焦点图频道里的大部分幻灯图片效果都可以用灵动标签调用的。 ...2015-12-30
- 这篇文章介绍了C#异常处理,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了JS创建Tag标签的方法,结合具体实例形式分析了javascript动态操作页面HTML元素实现tag标签功能的步骤与相关操作技巧,需要的朋友可以参考下...2017-06-15
- 有时候我们在建站的过程当中需要调用内容页中正文的第一张图片(并不是缩略图),这样就会无从下手,但其实对不懂开发的站长是太难了,往往是会用标题图片来取代,下面分享网友们贡献出...2015-12-30
- 在网页中,我们可以将JavaScript代码放在html文件中任何位置,但一般放在head或body标签里面。一般来说,<script>元素放在哪里与其的功能作用是紧密相关的,通过本文我们一起学习下...2016-01-18
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 带上下箭头jquery垂直tab选项卡切换标签,技持左侧列表上下滚动,滚动到底部带信息提示。复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml...2015-03-15