jQuery ajax - metoda param()

przykład

seryalizacja jednego klucz/wartość obiekt:

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

wynik:

width=1680&height=1050

TIY przykład

wyświetl wynik seryalizacji obiektu:

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

spróbuj sam

definicja i użycie

Metoda param() tworzy seryalizowaną reprezentację tablicy lub obiektu.

wartość seryalizacji może być używana w zapytaniu URL podczas wykonywania żądania AJAX.

syntaktyka

jQuery.param(object,traditional)
parametr opis
object tablica lub obiekt do seryalizacji.
traditional określa, czy używać tradycyjnego sposobu seryalizacji (seryalizacja parametrów).

szczegółowe wyjaśnienie

Metoda param() używa się do wewnętrznej konwersji wartości elementu na seryalizowaną reprezentację ciągu znaków. Zobacz: .serialize() Dowiedz się więcej.

Dla jQuery 1.3, jeśli przekazywany parametr to funkcja, .param() zwróci wartość zwróconą przez tę funkcję, zamiast zwrócić funkcję jako ciąg znaków.

Dla jQuery 1.4, metoda .param() seryalizuje obiekt w sposób rekurencyjny, aby pasował do wymagań współczesnych języków skryptowych, takich jak PHP, Ruby on Rails itp. Możesz wyłączyć tę funkcję globalnie, ustawiając jQuery.ajaxSettings.traditional = true;

jeśli przekazywany obiekt znajduje się w tablicy, musi być zserializowany w sposób: .serializeArray() wartość zwracana to obiekt tablicy w formacie:

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

Uwaga:Ponieważ niektóre ramy mają ograniczone możliwości w analizie serializowanych liczb, należy uważać, gdy przekazuje się jako parametry tablice zawierające obiekty lub wewnętrzne tablice!

W jQuery 1.4 elementy input HTML5 również będą serializowane.

Więcej przykładów

Możemy wyświetlić reprezentację zapytania obiektu oraz wersję URI kodowaną w następujący sposób:

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);

Wartości recursiveEncoded i recursiveDecoded są wyświetlane jak poniżej:

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

Można ustawić parametr traditional na true, aby symulować zachowanie $.param() w wersjach jQuery 1.4 i wcześniejszych:

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);

Wartości recursiveEncoded i recursiveDecoded są wyświetlane jak poniżej:

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