jQuery ajax - Μέθοδος param()
παραδείγματος
Σειρείαση ενός key/value Αντικείμενο:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
Αποτέλεσμα:
width=1680&height=1050
Παράδειγμα TIY
Εκτυπώστε το αποτέλεσμα της σειρείασης του αντικειμένου:
$("button").click(function(){ $("div").text($.param(personObj)); });
Ορισμός και χρήση
Η μέθοδος param() δημιουργεί μια σειρείαζόμενη εκδοχή ενός πίνακα ή αντικειμένου.
Αυτό το σειρείαζόμενο όρισμα μπορεί να χρησιμοποιηθεί στη συνάρτηση URL κατά την εκτέλεση αιτήματος AJAX.
Γλώσσα
jQuery.param(object,traditional)
Παράμετροι | Περιγραφή |
---|---|
object | Ο πίνακας ή το αντικείμενο που πρέπει να σειρείαζεται. |
traditional | καθορίζει αν θα χρησιμοποιηθεί η παραδοσιακή μέθοδος για την επιφανειακή σειρείαση (σειρείαση παραμέτρων). |
συγκεκριμένη περιγραφή
Η μέθοδος param() χρησιμοποιείται για να μετατρέπει τις τιμές των στοιχείων σε μια σειρείαζόμενη αλφαριθμητική αλληλουχία. Εξετάστε την .serialize() Για περισσότερες πληροφορίες.
Για το jQuery 1.3, αν ο μεταφερόμενος παράμετρος είναι μια συνάρτηση, με τη χρήση της .param() θα λάβετε την επιστροφή της συνάρτησης, αντί να την επιστρέψετε ως μια αλφαριθμητική αλληλουχία.
Για το jQuery 1.4, η μέθοδος .param() θα σειρείαζει τον πίνακα με βάση τη βαθιά ανατροφοδότηση, για να ικανοποιεί τις απαιτήσεις των σύγχρονων γλωσσών脚本, όπως το PHP, Ruby on Rails κ.λπ. Μπορείτε να απενεργοποιήσετε αυτή τη λειτουργία παγκοσμίως ρυθμίζοντας το jQuery.ajaxSettings.traditional = true;.
αν το μεταφερόμενο αντικείμενο βρίσκεται στον πίνακα, πρέπει να είναι με βάση .serializeArray() η επιστροφή είναι ένας πίνακας αντικειμένων μορφής:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"} {name:"job",value:"Rock Star"}]
Note:Since some frameworks have limited capabilities when parsing serialized numbers, be careful when passing arrays containing objects or nested arrays as parameters!
In jQuery 1.4, HTML5 input elements are also serialized.
More Examples
We can display the query string representation and URI encoded version of the object as follows:
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);
The values of recursiveEncoded and recursiveDecoded are output as follows:
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
You can set the traditional parameter to true to simulate the behavior of $.param() in versions of jQuery 1.4 and earlier:
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);
The values of recursiveEncoded and recursiveDecoded are output as follows:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3