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;属于input属性
}
$_POST['express_money'] = $_POST['express_price'][$key];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。