jQuery ajax - param() -Methode
Beispiels
Serialisieren eines key/value Objekt:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
Ergebnis:
width=1680&height=1050
TIY - Beispiel
Geben Sie das Ergebnis der Serialisierung des Objekts aus:
$("button").click(function(){ $("div").text($.param(personObj)); });
Definition und Verwendung
Die Methode .param() erstellt eine serialisierte Darstellung von Arrays oder Objekten.
Dieser Serialisierungswert kann im URL-Abfragestring einer AJAX-Anfrage verwendet werden.
Syntax
jQuery.param(object,traditional)
Parameter | Beschreibung |
---|---|
object | Das Array oder Objekt, das serialisiert werden soll. |
traditional | Legt fest, ob eine traditionelle, einfache Serialisierung (Parameter-Serialisierung) verwendet wird. |
Details
Die Methode .param() wird verwendet, um den Wert eines Elements intern in eine serialisierte Zeichenkette zu konvertieren. Siehe .serialize() Erfahren Sie mehr.
Für jQuery 1.3 wird der Rückgabewert einer Funktion durch .param() die Rückgabewert der Funktion sein, anstatt die Funktion als String zurückzugeben.
Für jQuery 1.4 wird die .param() -Methode auf tiefem Niveau rekursiv serialisiert, um den Anforderungen moderner Skriptsprachen wie PHP, Ruby on Rails usw. gerecht zu werden. Sie können diese Funktion global deaktivieren, indem Sie jQuery.ajaxSettings.traditional = true; festlegen.
wenn das übergebene Objekt im Array ist, muss es in der Form sein: .serializeArray() der Rückgabewert ist ein Array von Objekten im Format:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"} {name:"job",value:"Rock Star"}]
Hinweis:Da einige Frameworks bei der Parsing von serialisierten Zahlen begrenzt sind, bitte beim Übermitteln von Arrays mit Objekten oder verschachtelten Arrays als Parameter vorsichtig sein!
In jQuery 1.4 werden auch HTML5 Input-Elemente serialisiert.
Mehr Beispiele
Wir können den Suchstrings und die URI-kodierte Version des Objekts wie folgt anzeigen:
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);
Die Werte von recursiveEncoded und recursiveDecoded werden wie folgt ausgegeben:
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
Man kann den Parameter traditional auf true setzen, um das Verhalten von $.param() vor jQuery 1.4 zu imitieren:
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);
Die Werte von recursiveEncoded und recursiveDecoded werden wie folgt ausgegeben:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3