jQuery ajax - param() metode

eksempel

Serialiser en key/value Objekt:

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

Resultat:

width=1680&height=1050

TIY eksempel

Udskriv resultatet af den serialiserede objekt.

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

Prøv det selv

Definition og brug

param() metoden opretter en serialiseret repræsentation af array eller objekt.

Denne serialiserede værdi kan bruges i URL-søgestrengen ved AJAX-anmodninger.

syntaks

jQuery.param(object,traditional)
parametre beskrivelse
object den array eller objekt, der skal serialiseres.
traditional definere om der skal bruges traditionel måde for shallow serialisering (parameter serialisering).

detaljeret beskrivelse

param() metoden bruges til at konvertere elementværdierne til en serialiseret strengrepræsentation. Se .serialize() Få mere information.

For jQuery 1.3, hvis den overførte parameter er en funktion, vil .param() returnere funktionens værdi, ikke som en streng.

For jQuery 1.4 vil .param() metoden serialisere objektet dybt rekursivt for at opfylde kravene til moderne skriptsprog, såsom PHP, Ruby on Rails osv. Du kan deaktivere denne funktion globalt ved at sætte jQuery.ajaxSettings.traditional = true;.

Hvis den overførte objektet er i arrayet, skal det være med .serializeArray() den returnerer en objektarray i formatet:

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

Bemærk:Da nogle rammer har begrænset evne til at analysere serialiserede tal, skal du være meget forsigtig, når du sender arrays, der indeholder objekter eller indlejrede arrayer som parametre!

I jQuery 1.4 vil HTML5s input-element også blive serialiseret.

Flere eksempler

Vi kan vise objektets forespørgselssognsrepræsentation og URI-koderede versioner som følger:

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

Output af værdierne for recursiveEncoded og recursiveDecoded er som følger:

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 kan sætte traditional parameter til true for at simulere $.param()s opførsel i versioner af jQuery før 1.4:

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

Output af værdierne for recursiveEncoded og recursiveDecoded er som følger:

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