html里 我用form提交 里面套了一个foreach 为什么每次都是找最后一个值

  <form action="../pay/index" method="post" target="_blank" name="alipayment">
        {foreach name="goods" item="vo"}
        <dl class="content">
            <dd>
                <input id="WIDsubject" name="goods_name" value="{$vo.goods_name}" />
            </dd>
            <dd>
                <input id="WIDtotal_amount" name="shop_price" value="{$vo.shop_price}"/>
            </dd>
            <dd>
                <input id="WIDbody" name="goods_id" value="{$vo.goods_id}"/>
            </dd>
            <dt></dt>
        </dl>
        <input type="submit" value="点击购买"  style="background-color: blanchedalmond"><br>
        {/foreach}
    </form>

html里 我用form提交 里面套了一个foreach 为什么每次点击购买的时候都是找到最后一个值提交 而不是我点击的那个值提交呢》???

你现在的现象是:一个form表单里面存在多个submit 按钮。而且提交按钮的属性、值都是一样的,后台是没法去做区分的。
较为简单的改法:你可以将循环放在form 表单外层试试?

因为你的提交键没和数据对应,你给提交键,也必须赋值和当前数据对应,不然谁知道你提交的是哪一行数据

原因是循环生成的表单元素的name一样,form只认最后一个

给form内的组件name加上数组