jQuery ajax - param() metod

exempel

serialisera en key/value Objekt:

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

Resultat:

width=1680&height=1050

TIY-exempel

Skriv ut resultatet av den serialiserade objektet:

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

Prova själv

Definition och användning

param() metoden skapar en serialiserad representation av en array eller ett objekt.

den serialiserade värdet kan användas i URL-forespärrsträngen vid AJAX-forespärrar.

syntaks

jQuery.param(object,traditional)
parametrar beskrivning
object den array eller objekt som ska serialiseras.
traditional ange om du vill använda det traditionella sättet att serialisera på ett yttre sätt (paramserialisering).

detaljerad beskrivning

param() metoden används för att interna konvertera elementvärden till en serialiserad strängrepresentation. Se .serialize() Lär dig mer.

För jQuery 1.3, om det överförda parametern är en funktion, kommer .param() att returnera funktionens returvärde, inte som en sträng.

För jQuery 1.4 kommer .param() metoden att serialisera objektet på ett djupet rekursivt sätt för att uppfylla kraven för moderna skriptspråk, som PHP, Ruby on Rails och andra. Du kan inaktivera denna funktion globalt genom att sätta jQuery.ajaxSettings.traditional = true;.

om det överförda objektet finns i arrayen, måste det vara med .serializeArray() återvärdet är en objektarray i formatet:

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

Observera:Eftersom vissa ramverk har begränsad förmåga att解析serialiserade tal, måste du vara försiktig när du skickar arrayer som innehåller objekt eller nästlade arrayer som parametrar!

I jQuery 1.4 kommer även HTML5 input-element att serialiseras.

Mer exempel

Vi kan visa objektets frågesträngsrepresentation och URI-kodade version som följer:

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

recursiveEncoded och recursiveDecoded värdena visas som följer:

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

Du kan ställa in traditional-parametern till true för att simulera beteendet för $.param() i versioner av jQuery 1.4 och tidigare:

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

recursiveEncoded och recursiveDecoded värdena visas som följer:

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