这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 处理 form 表单提交多个 name 属性值相同的 input 标签问题的解决方法,需要的朋友参考下吧
一 问题
在公司的开发过程中,遇到了一个问题:如何处理 form 表单提交了多个 name 属性值相同的 input 标签?源码如下(源码是在 form 表单之中的):
- <!--{loop $address $index $one}-->
- <div class="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}-->
- <div class="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 标签问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/17/0809/339865.html