jQuery ajax - param() metodi

esimerkki

sarasta avain/arvo Objekti:

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

Tulos:

width=1680&height=1050

TIY esimerkki

Tulosta sarastetun objektin tuloksen:

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

Kokeile itse

Määritelmä ja käyttötapa

param() metodi luo matriisin tai objektin sarastetun edustuksen.

Tämä sarastettu arvo voidaan käyttää URL-etsintämerkkijonossa AJAX-pyynnön aikana.

syntaksi

jQuery.param(object,traditional)
parametrit kuvaus
object sarastettava matriisi tai objekti.
traditional määrittääksesi, käytetäänkö perinteistä tapaa sarastaa (parametrisointi).

yksityiskohtaiset ohjeet

param() metodi käytetään sisäisesti elementin arvon muuntamiseen sarastettavaksi merkkijonoksi. Katso .serialize() Lisätietoja.

jQuery 1.3 versiossa, jos siirretty parametri on funktio, .param() palauttaa tämän funktion arvon, ei sitä funktiota merkkijonona.

jQuery 1.4 versiossa .param() metodi serialisoi objektin syvällisellä rekursiivisella tavalla, jotta se vastaa nykyaikaisten skriptikielten vaatimuksia, kuten PHP, Ruby on Rails ja niin edelleen. Voit ottaa käyttöön tämän toiminnon globaalisti asettamalla jQuery.ajaxSettings.traditional = true;.

Jos siirretty objekti on matriisissa, se on pakko olla .serializeArray() palautusarvo on muotoa objektimatriisi:

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

Huomaa:Jotkut kehykset ovat rajallisia sarjautuneiden numerojen käsittelyssä, joten varmista, että olet varovainen, kun välität objekteja tai sisäkkäisiä taulukoita parametreina!

jQuery 1.4:ssä HTML5:n input-elementit merkitään myös sarjautetuiksi.

Lisää esimerkkejä

Voimme näyttää objektin hakuketju- ja URI-koodatun version seuraavasti:

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 ja recursiveDecoded arvot näytetään seuraavasti:

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

Voit asettaa traditional-parametrin trueksi, jotta voit simuloimaa jQuery 1.4 ennen versioiden $.param() käyttäytymistä:

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 ja recursiveDecoded arvot näytetään seuraavasti:

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