Rumah  >  Artikel  >  pembangunan bahagian belakang  >  解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题

解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题

不言
不言asal
2018-05-02 10:29:102118semak imbas

这篇文章主要介绍了关于解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一 问题

在公司的开发过程中,遇到了一个问题:如何处理 form 表单提交了多个 name 属性值相同的 input 标签?源码如下(源码是在 form 表单之中的):

<!--{loop $address $index $one}-->
<p class="address_item">
   <p>
    <label>
    <input type="hidden" name="express_price" value="{$one[&#39;express_price&#39;]}" />
    <input type="hidden" name="state_fare" value="{$one[&#39;state_fare&#39;]}" />
    <input type="hidden" name="id" value="{$one[&#39;id&#39;]}" />
    <input type="radio" <!--{if $one[ &#39;default&#39;]==&#39;Y&#39; }-->checked<!--{/if}-->name="address" value="{$one[&#39;id&#39;]}" /><span name="mobile">{$one[&#39;mobile&#39;]}</span>
    </label>
   </p>
</p>
<!--{/loop}-->

二 解决方法

在上述源码中,通过 loop 循环,在 form 表单中生成了多个name属性值相同的 input 元素,当点击提交时,后台的 php 文件使用 $_POST 仅能获取到一个 p 元素中的 input元素传过来的值,但是,radio 类型的 input 元素传过来的值一定是被选中的那一个。据此,修改上述源码中一些 input 元素的相同 name 属性值为数组,再在后台 php 文件通过被选中的 radio 类型的 input 元素的 name 属性值,确定所传过来的整个 p 元素。修改后的代码如下:

<!--{loop $address $index $one}-->
<p class="address_item">
   <p>
    <label>
    <input type="hidden" name="express_price[]" value="{$one[&#39;express_price&#39;]}" />
    <input type="hidden" name="state_fare[]" value="{$one[&#39;state_fare&#39;]}" />
    <input type="hidden" name="id[]" value="{$one[&#39;id&#39;]}" />
    <input type="radio" <!--{if $one[ &#39;default&#39;]==&#39;Y&#39; }-->checked<!--{/if}-->name="address" value="{$one[&#39;id&#39;]}" />
    <span name="mobile">{$one[&#39;mobile&#39;]}</span>
    </label>
   </p>
</p>
<!--{/loop}-->

php 文件:

$key = 0;
$address_id = intval($_POST["address"]);
foreach ($_POST[&#39;id&#39;] as $k => $v) {
  if ($v == $address_id)
     $key = $k;
}
$_POST[&#39;express_money&#39;] = $_POST[&#39;exporess_price&#39;][$key];

相关推荐:

linux下,解决php -v与phpinfo版本不一致的问题

如何解决php用file_get_contents方法抓取网页数据出现乱码


Atas ialah kandungan terperinci 解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn