2013-04-05 4 views
0

간단한 장바구니에 세션을 추가하기 위해 다른 페이지에 $ _POST 데이터를 보내려고합니다.

PHP 내에 여러 개의 폼이 있고 각 폼에 여러 개의 확인란이 있습니다. 모든 체크 박스는 작동합니다.

제 질문은이 코드를 변경하여 "item_extras"를 배열로 어떻게 변경합니까?

if (this.checked) item_extras = $ (this) .val();

다음을 시도했지만, 배열 내의 다른 행 대신 모든 값을 가진 한 행을 만듭니다. 이것이 너무 혼란 스럽다면 도움이된다면 샘플을 만들 수 있습니다.

if (this.checked) item_extras + = $ (this) .val();

$('form[id^="add_item_form"]').on('submit', function(){ 
    //alert("On Click Works"); 
    event.preventDefault(); 
    addItem($(this)); 
}); 

function addItem(ele) { 
    //alert("I'm in the addItem Function"); 
    var item_id = ele.parent().parent().find("input[name=item_id]").val(); // get item id 
    var item_name = ele.parent().parent().find("input[name=item_name]").val(); // get item name 
    var item_options = ele.parent().parent().find('#options').val(); // get selected option 
    var item_extras = ""; 

    $item_extras = ele.parent().parent().find('input[name^="extra"]'); // find all extras 

    $item_extras.each(function() { 
     if(this.checked) item_extras = $(this).val(); // how do i make this into an array??? 
    }); 

    alert("BEFORE AJAX"); 

    var dataString = 'item_id=' + item_id + '&item_name=' + item_name + '&item_options=' + item_options + '&item_extras[]=' + item_extras; 

    alert(dataString); 

    $.ajax({ 
     type: "POST", 
     cache: false, 
     url: "includes/cart.php", 
     data: dataString, 
     success: function() { 
      $.ajax({ 
       url: 'includes/cart.php', 
       success: function(data) { 
       $('#cart').html(data); 
       alert("AJAX SUCCESS"); 
       } 
      }); 
     } 
    }); 

    return false; 
} 
+1

는'item_extras + = '& item_extras [] ='+ $ (이) .val()를 시도,' – Victor

+0

당신은 당신의 형태로 배열 이름을 사용하고 있습니까? – elclanrs

+0

대담한 Victor를 만났습니다 :) – monsterboy

답변

3

당신은 직렬화 방법을 사용할 수 있습니다. Form.serialize()

$("form").on("submit", function(event) { 
    event.preventDefault(); 
    var data = $(this).serialize(); 
}); 
+0

감사합니다. – monsterboy

관련 문제