萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php 在處理 form 表單時提交多個 name 屬性值相同的 input 標簽 如何解決

php 在處理 form 表單時提交多個 name 屬性值相同的 input 標簽 如何解決

這篇文章主要介紹了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 標簽問題,希望對大家有所幫助。在此也非常感謝大家對本網站的支持!

copyright © 萬盛學電腦網 all rights reserved