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