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['express_price'][$key];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM