2012-05-01 28 views
76

Có thể gửi đối tượng form.serialize() và các tham số khác với yêu cầu $.ajax() đơn không?jquery form.serialize và các tham số khác

Ví dụ:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : { 
     $('#form').serialize(), 
     par1 : 1, 
     par2 : '2', 
     par3: 232 
    } 
} 

Nếu không phải những gì là cách tốt nhất để submit một form cùng với các thông số khác.

Cảm ơn

Trả lời

159

serialize() hiệu quả biến các giá trị dạng thành một chuỗi truy vấn có giá trị, như vậy bạn chỉ có thể nối thêm vào chuỗi:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232" 
} 
+10

Cảm ơn rất nhiều anh trai dừa – Falcon

+6

@Falcon Ý anh là gì của * dừa * ở đây? – Shafizadeh

+0

làm cách nào tôi có thể thay đổi 1 thành biến –

55

Hoặc bạn có thể sử dụng form.serialize() với $ .param (đối tượng) nếu bạn lưu trữ các thông số của bạn trong một số biến đối tượng. Việc sử dụng sẽ là:

var data = form.serialize() + '&' + $.param(object) 

Xem http://api.jquery.com/jQuery.param để tham khảo thêm.

+8

Tôi thích trang này. Nó có nghĩa là tôi không phải nhìn vào một chuỗi truy vấn xấu xí! –

+0

Vâng tốt hơn nhiều – JSHelp

+4

Đây là cách tốt hơn, cho đến nay. Câu trả lời được chấp nhận là lộn xộn và không bao giờ nên được sử dụng trong bất kỳ ứng dụng sản xuất nào. – FastTrack

5

Tôi không biết nhưng không có ở trên làm việc cho tôi, sau đó tôi sử dụng này và nó làm việc:

Trong mảng serialized hình thức của nó được lưu giữ như cặp giá trị key

Chúng tôi đã đẩy giá trị hoặc giá trị mới ở đây trong biến dạng và sau đó chúng tôi có thể chuyển biến này trực tiếp ngay bây giờ.

var form = $('form.sigPad').serializeArray(); 
var uniquekey = { 
     name: "uniquekey", 
     value: $('#UniqueKey').val() 
}; 
form.push(uniquekey); 
0

Bạn có thể tạo biểu mẫu quen thuộc bằng jQuery với nội dung của biểu mẫu khác và sau đó thêm biểu mẫu đó vào các thông số khác để bạn chỉ phải tuần tự hóa trong cuộc gọi ajax.

function createInput(name,value){ 
    return $('<input>').attr({ 
     name: name, 
     value: value 
    }); 
} 
$form = $("<form></form>"); 
$form.append($("#your_form input").clone()); 
$form.append(createInput('input_name', 'input_value')); 
$form.append(createInput('input_name_2', 'input_value_2')); 
.... 

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $form.serialize() 
} 
-1

Tôi khắc phục vấn đề với tuyên bố dưới; gửi dữ liệu với url cùng GET tole

$.ajax({ 
    url: 'includes/get_ajax_function.php?value=jack&id='+id, 
    type: 'post', 
    data: $('#b-info1').serializeArray(), 

và nhận được giá trị với $ _REQUEST [ 'giá trị'] OR $ _GET [ 'id']

Các vấn đề liên quan