我有这样的ajax代码,这是传递表单数据到createfinalinvoice.php。
serial_number和skid是一些表单字段name="serial_number[]"和name="skid[]"的一部分(见下文)
$(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代码读取数组并将其传递下去。到目前为止,代码只是将每个参数的第一个作为字符串而不是数组传递。
尝试使用serialize!
创造了奇迹$( 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;
});
我在这里也使用了jquery的.on
,因为它更强大,总的来说,比仅仅绑定到元素要好。