一 问题

在公司的开发过程中,遇到了一个问题:如何处理 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];

php 处理 form 表单提交多个 name 属性值相同的 input 标签的更多相关文章

  1. form表单提交行为

    项目中有一个表单如下图,当我填完数据源名称这个input后,点击回车键本意是想跳到下一个input处,然而呢却触发了下面的添加这个按钮的事件,这是怎么回事呢,明明添加这个按钮并没有设置type=&qu ...

  2. Form表单提交,js验证

    Form表单提交,js验证 1,  Onclick() 2, Onsubmit() Button标签 input (属性 submit  button )标签 Input type=button    ...

  3. Form表单提交数据的几种方式

    一.submit提交 在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮(<input type='submit'>)就可以进行数据的提交, ...

  4. jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用

    一.jQuery Form的其他api  1.  formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...

  5. jQuery Form 表单提交插件----Form 简介,官方文档,官方下载地址

     一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxF ...

  6. Checkbox框全选操作,form表单提交与jquery ajax提交两种处理方式

    //1.jquery ajax<script type="text/javascript"> $(function(){ var basePath = $(" ...

  7. form表单提交

    1.form表单提交.html页面失败 <%--客户端form--%> <form id="form2" action="LoginOne.html&q ...

  8. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  9. 2017-01-11小程序form表单提交

    小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...

随机推荐

  1. 使用clamav查杀病毒

    cd ~ wget http://www.zlib.net/fossils/zlib-1.2.8.tar.gz .tar.gz cd zlib- ./configure --prefix=/usr/l ...

  2. 关于js无法设置input的value的问题

    html内容来自: <script type="text/html" id="theTemplate"> <input id="in ...

  3. poj 1389(离散化+计算几何)

    Area of Simple Polygons Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3412   Accepted ...

  4. 【转】2017PHP程序员的进阶之路

    2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...

  5. hihocoder Arithmetic Expression【在线查询】

    Arithmetic Expression   时间限制:2000ms 单点时限:200ms 内存限制:256MB 描述 Given N arithmetic expressions, can you ...

  6. Codeforces Round #445 C. Petya and Catacombs【思维/题意】

    C. Petya and Catacombs time limit per test 1 second memory limit per test 256 megabytes input standa ...

  7. 树的直径【p3629】[APIO2010]巡逻

    Description 在一个地区中有 n 个村庄,编号为 1, 2, ..., n.有 n – 1 条道路连接着这些村 庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其 他任一 ...

  8. viewflipper的高度设置

    由于ViewFlipper的一个子view是这个ImageView,ViewFilpper在切换时,高度总是为子View中高度最大的值作为其高度值. 后经搜索,发现需要设置android:measur ...

  9. Xamarin XAML语言教程构建进度条ProgressBar

    Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...

  10. ANDROID模拟器访问本地WEB应用10.0.2.2

    在一般的Java Web程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的Web服务,但是如果我们在Android模拟器中也采用同样的地址来访问,Android模拟器将无法正 ...