2013-01-15 19 views
0

我有這樣的ajax代碼,它將表單數據傳遞給createfinalinvoice.php。從表單傳入數組到AJAX

SERIAL_NUMBER和防滑是由於我傳遞相同名稱的多個某種形式的字段其名稱=「SERIAL_NUMBER []」和名稱=「打滑[]」(見下文)

$(document).ready(function() { 
    $("form#submit").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below 
     var invoice_temp_id = $('#invoice_temp_id').attr('value'); 
     var customer = $('#customer').attr('value'); 
     var date = $('#date').attr('value'); 
     var shipdate = $('#shipdate').attr('value'); 
     var shipvia = $('#shipvia').attr('value'); 
     var ponumber = $('#ponumber').attr('value'); 
     var rep = $('#rep').attr('value'); 
     var invoicenotes = $('#invoicenotes').attr('value'); 
     var serial_number = $('#serial_number').attr('value'); 
     var skid = $('#skid').attr('value'); 
     var finalize_invoice = $('#finalize_invoice').attr('value'); 

     $.ajax({ 
      type: "POST", 
      url: "includes/createfinalinvoice.php?", 
      data: "invoice_temp_id="+ invoice_temp_id+ 
       "&customer="+ customer+ 
       "&date="+ date+ 
       "&shipdate="+ shipdate+ 
       "&shipvia="+ shipvia+ 
       "&ponumber="+ ponumber+ 
       "&rep="+ rep+ 
       "&invoicenotes="+ invoicenotes+ 
       "&serial_number="+ serial_number+ 
       "&skid="+ skid+ 
       "&finalize_invoice="+ finalize_invoice, 
      success: function(data) { 
       $('form#submit :input').not('input[type="submit"]').val(""); 
       $('div.success').fadeIn(); 
       $('div.success').html(data); 
      } 
     }); 

     return false; 
    }); 
}); 

<form> 
    <input type="text" name="serial_number[]" id="serial_number" class="serial_number"> 
    <input type="text" name="skid[]" id="skid" class="skid"> 
    <input type="text" name="serial_number[]" id="serial_number" class="serial_number"> 
    <input type="text" name="skid[]" id="skid" class="skid"> 
    <input type="text" name="serial_number[]" id="serial_number" class="serial_number"> 
    <input type="text" name="skid[]" id="skid" class="skid"> 
    <input type="text" name="serial_number[]" id="serial_number" class="serial_number"> 
    <input type="text" name="skid[]" id="skid" class="skid"> 
</form> 

的一部分它把它放在數組中。我很難弄清楚如何讓AJAX代碼讀取數組並傳遞它。到目前爲止,代碼只是將每個代碼的第一個作爲字符串傳遞,而不是數組。

+2

你真的應該調查使用jQuery'serialize()'函數。你也可以根據id屬性獲得'serial_number []'和'skid []'的值。所有的ID必須是唯一的。 –

+0

我<3 stackoverflow :) –

回答

1

嘗試使用序列化!工程奇蹟使用jQuery的.on這裏也一樣,它的功能更強大

$(document).on('submit', "form#submit", function() { 
$.ajax({ 
      type: "POST", 
      url: "includes/createfinalinvoice.php?", 
      data: $(this).serialize(), 
      success: function(data){ 
       $('form#submit :input').not('input[type="submit"]').val(""); 
       $('div.success').fadeIn(); 
       $('div.success').html(data); 
       } 
      }); 
     }); 
     return false; 

}); 

IM,和整體,不僅僅是結合的元素更好。

+0

真棒,這是容易的方式:) –

+0

哈哈是啊,使它更容易擴展 – Ascherer

+0

omg是它如此真棒 –