Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多个输入的名称相同_Php - Fatal编程技术网

Php 多个输入的名称相同

Php 多个输入的名称相同,php,Php,我有一张表格。。。其中,我必须对表单上的每个产品的字段使用相同的名称 零件号、项目和价格,如果我想用一个订单按钮添加多个项目,则此项不能更改。下面的示例代码用于使用Cart32的购物车软件将多个项目添加到购物车。我想知道他们如何对许多项使用相同的名称,比如PartNo,并且能够检索该字段的所有值 我试着写我自己的页面来接收输入,在我的一生中,我无法为任何重复的字段(如PartNo、Qty和Price)获取多个项目。我尝试了$\u REQUEST、$\u POST和$\u GET,我只得到了最后一

我有一张表格。。。其中,我必须对表单上的每个产品的字段使用相同的名称

零件号、项目和价格,如果我想用一个订单按钮添加多个项目,则此项不能更改。下面的示例代码用于使用Cart32的购物车软件将多个项目添加到购物车。我想知道他们如何对许多项使用相同的名称,比如PartNo,并且能够检索该字段的所有值

我试着写我自己的页面来接收输入,在我的一生中,我无法为任何重复的字段(如PartNo、Qty和Price)获取多个项目。我尝试了$\u REQUEST、$\u POST和$\u 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>

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

<input type="text" name="field[]" value="first" />
<input type="text" name="field[]" value="second" />
<input type="text" name="field[]" value="third" />
另一种方法是在复制每个新块的现有字段集时,向每个字段名追加递增的数字。这在块之间提供了很好的分隔,并允许您保证相关字段具有相同的数字标记,但这会使处理复杂化


使用
name=PartNo[]
并通过数组
var\u dump($\u POST['PartNo'])在PHP中检索
$\u POST['PartNo'][0]$\u POST['PartNo'][1]
等…如果出于某种原因你不能按照Michael的建议去做(这是正确的答案),则可能会重复然后,理论上可以为消息体滚动您自己的解析器,以按原样处理数据,但这是一个巨大的PITA,因此请先尝试一下。也许
name=“myInput[][PartNo]”会更方便
$_POST = array(
    'field' => array(
         0 => 'first',
         1 => 'second',
         2 => 'third',
    )
);