2012-07-11 82 views
-2

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

PartNo,项目和价格,如果我想添加一个订单按钮的多个项目,这不能改变。下面的示例代码适用于使用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> 
+8

使用'名称= PARTNO []'和通过阵列中的PHP检索'的var_dump($ _ POST [ 'PARTNO'])''$ _POST [ 'PARTNO'] [0] $ _POST [” PartNo'] [1]'等... – 2012-07-11 23:22:07

+0

[添加多个输入到文件php表单提交](http://stackoverflow.com/questions/10763530/adding-multiple-inputs-to-file-php- form-submit) – 2012-07-11 23:24:29

+0

如果由于某种原因你不能做迈克尔所建议的(这是正确的答案),那么理论上可以推出你自己的解析器来处理将处理数据的消息正文,但它是一个巨大的PITA,所以首先尝试一下。 – DaveRandom 2012-07-11 23:25:03

回答

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

+0

谢谢!!!,这工作。 – user1519293 2012-07-11 23:43:02

+0

您的欢迎。在堆栈溢出处,我们通过点击检查按钮来感谢人们。谢谢哈哈 – maxhud 2012-07-11 23:44:54