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