jQuery ajax - phương thức param()

ví dụ

Serial hóa một key/value Đối tượng:

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);

Kết quả:

width=1680&height=1050

TIY ví dụ

Hiển thị kết quả serial hóa đối tượng:

$("button").click(function(){
  $("div").text($.param(personObj));
});

Thử ngay

Định nghĩa và cách sử dụng

phương thức param() tạo ra biểu diễn serial hóa của mảng hoặc đối tượng.

Giá trị serial hóa này có thể được sử dụng trong chuỗi truy vấn URL khi gửi yêu cầu AJAX.

cú pháp

jQuery.param(object,traditional)
tham số mô tả
object mảng hoặc đối tượng cần được serial hóa.
traditional định nghĩa có nên sử dụng cách serial hóa truyền thống (serial hóa tham số) một cách nông.

thông tin chi tiết

phương thức param() được sử dụng để chuyển đổi giá trị của phần tử thành biểu diễn chuỗi serial hóa. Xem thêm .serialize() Tìm hiểu thêm thông tin.

Đối với jQuery 1.3, nếu tham số được truyền qua là một hàm, thì sử dụng .param() sẽ nhận được giá trị trả về của hàm, thay vì trả về hàm như một chuỗi.

Đối với jQuery 1.4, phương thức .param() sẽ serial hóa đối tượng theo cách lặp sâu để phù hợp với yêu cầu của ngôn ngữ脚本 hiện đại, chẳng hạn như PHP, Ruby on Rails v.v. Bạn có thể tắt chức năng này toàn cục bằng cách thiết lập jQuery.ajaxSettings.traditional = true;.

Nếu đối tượng được truyền qua trong mảng, thì nó phải là với định dạng .serializeArray() trả về giá trị là mảng đối tượng định dạng:

[{name:"first",value:"Rick"},
{name:"last",value:"Astley"}
{name:"job",value:"Rock Star"}]

Lưu ý:Vì một số khung công tác có khả năng xử lý số khi phân tích chuỗi serialized hạn chế, vì vậy hãy cẩn thận khi truyền các mảng chứa đối tượng hoặc mảng nhúng làm tham số!

Trong jQuery 1.4, các phần tử input của HTML5 cũng sẽ được序列 hóa.

Các ví dụ khác

Chúng ta có thể hiển thị cách biểu diễn chuỗi tìm kiếm của đối tượng và phiên bản mã hóa URI như sau:

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));
alert(recursiveEncoded);
alert(recursiveDecoded);

Giá trị của recursiveEncoded và recursiveDecoded được hiển thị như sau:

a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3

Bạn có thể đặt tham số traditional thành true để mô phỏng hành vi của $.param() trong các phiên bản trước 1.4 của jQuery:

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);
alert(shallowEncoded);
alert(shallowDecoded);

Giá trị của recursiveEncoded và recursiveDecoded được hiển thị như sau:

a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3