多个输入的相同名称

时间:2012-07-11 23:20:32

标签: php

我有一个表单...我必须为表单上的每个产品的字段使用相同的名称。

PartNo,Item和Price,如果我想用一个订单按钮添加多个项目,则不能改变。下面的示例代码适用于使用Cart32的购物车软件将多个项目添加到购物车。我想知道他们如何使用与PartNo相同的名称来处理许多项目,并且能够检索该字段的所有值。

我尝试编写自己的页面来接收输入,对于我的生活,我不能为PartNo,Qty和Price等任何重复字段获取多个项目。我试过$ _REQUEST,$ _POST和$ _GET,我只得到最后一个值,所以它不是一个案例问题。

这是一个精简的例子。

<FORM name ='x' METHOD="post" ACTION="https://www.cart32.com/cart32.ex…
<!-- item 1 -->
<div id'=x'>
#1 | desc1 | $27.99 Qty: <input type='text' size='3' name='Qty' value='0'>
<input type=hidden name='PartNo' value='11'>
<input type=hidden name='Item' value='product1'>
<input type=hidden name='Price' value='27.99'>
</div>


<!-- item 2 -->
<div id'=x'>
#2 | desc2 | $7.99 Qty: <input type='text' size='3' name='Qty' value='0'>
<input type=hidden name='PartNo' value='11'>
<input type=hidden name='Item' value='product1'>
<input type=hidden name='Price' value='7.99'>
</div>

<div><input type='submit' value='Order'></div>
</form>

1 个答案:

答案 0 :(得分:2)

如果将[]附加到表单字段名称,PHP将获取这些字段并将它们转换为数组,例如

<input type="text" name="field[]" value="first" />
<input type="text" name="field[]" value="second" />
<input type="text" name="field[]" value="third" />

将生成以下$ _POST结构:

$_POST = array(
    'field' => array(
         0 => 'first',
         1 => 'second',
         2 => 'third',
    )
);

另一种方法是在每个新块的现有字段集复制时,为每个字段名称附加递增数字。这提供了块之间的良好分离,并允许您保证相关字段具有相同的数字标记,但它确实使处理复杂化。

Adding multiple inputs to file php form submit