我尝试使用一个提交按钮添加产品到订单购物车。
表格的例子(其他表格相同,不同之处在于表格的身份):
<form action="/products" method="post" id="basic-cart-add-to-cart-quantity-form-37" accept-charset="UTF-8">
<div>
<input type="hidden" name="nid" value="37">
<div class="form-item form-type-textfield form-item-quantity">
<input type="text" id="edit-quantity" name="quantity" value="0" size="5" maxlength="128" class="form-text" style="border-color: rgb(189, 159, 87);">
</div>
</div>
</form>
...
<div class="button basic-cart-add-to-cart-link">Add to cart</div>
因此,页面上可以有不同数量的表单。我选择了一个产品,在输入中输入数量,之后我使用&#34提交所有表格;添加到购物车&#34;按钮。
我尝试过几次提交6种表格(产品),但每次都添加了5种产品(但不是6种)。
$(function(){
$('.basic-cart-add-to-cart-link').click(function(){
var speed = 1250;
for(var i = 1; i <= idArr.length; i++) {
setTimeout(function(y) {
var formId = 'form#basic-cart-add-to-cart-quantity-form-' + y;
var selector = formId + ' ' +'input[name="quantity"]';
var q = parseInt($(selector).val());
if(q > 0) {
saveSelectorInStorage(selector);
$(formId).submit();
}
}, speed*i, idArr[i-1]);
}
});
});
idArr
- 表格数量已更改的数组。如果id="basic-cart-add-to-cart-quantity-form-37"
,在idArr
我放了37.我检查idArr
并且我有正确的ID。如何解决?
答案 0 :(得分:1)
您目前无法提交多个表单,因为浏览器会取消除最后一个表单提交套接字以外的所有表单。
使用索引输入代替使用多个表单:
<div>
<input type="hidden" name="Product[0]nid" value="37">
<div class="form-item form-type-textfield form-item-quantity">
<input type="text" name="Product[0]quantity" value="0" class="form-text">
</div>
</div>
<div>
<input type="hidden" name="Product[1]nid" value="39">
<div class="form-item form-type-textfield form-item-quantity">
<input type="text" name="Product[1]quantity" value="1" class="form-text">
</div>
</div>
在PHP方面,您将收到如下表单数据:
var_dump($_POST);
[
'Product' => [
[
'nid' => '37',
'quantity' => '0',
],
[
'nid' => '39',
'quantity' => '1',
],
]
];