一聚教程网:一个值得你收藏的教程网站

php 在处理 form 表单时提交多个 name 属性值相同的 input 标签 如何解决

时间:2017-05-17 00:00:00 编辑:简简单单 来源:转载

一 问题

在公司的开发过程中,遇到了一个问题:如何处理 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 标签问题,希望对大家有所帮助。在此也非常感谢大家对本网站的支持!

文章评论

热门栏目