2016-10-21 2 views
0

하나의 제출 단추를 사용하여 장바구니를 주문하는 제품을 추가하려고합니다. 형태여러 양식 제출이 올바르게 작동하지 않음

예 (다른 형태가 형태의 ID로되는 차이와 동일하다)

<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> 

그래서 페이지 형태의 다른 번호 일 수있다. 나는 제품을 선택하고 입력 물량을 입력 한 후 "장바구니에 추가"버튼을 사용하여 모든 양식을 제출합니다.

나는 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 - 수량이 변경된 ids 배열입니다. id="basic-cart-add-to-cart-quantity-form-37" 인 경우 idArr에 37을 넣었습니다. idArr을 확인했는데 정확한 ID가 있습니다. 그것을 해결하는 방법?

+0

대신 다양한 형태를 사용

는 인덱스 입력을 사용 제출할 양식이있는 페이지의 항목? 그게 가능할지라도, 왜 그렇게하고 싶습니까? – madalinivascu

+0

@ 마달린, 예를 들면 나는 10 가지 형태를 가지고 있습니다. 그럼 난 6 입력 수량 넣어. 그 후 나는 장바구니 버튼에 추가를 밀어. 순서대로 6 개 제품이어야하지만 나는 더 적습니다. – DenysM

+1

당신은 동시에 10 남자 wol :)을 제출할 수 없습니다. – madalinivascu

답변

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', 
     ], 
    ] 
]; 
관련 문제