ארגומנטים
jQuery.param( obj )
jQuery.param( obj, traditional )
פונקציה הזו משתמשת לשינוי ערכים של אלמנטים בתבנית לתוך מחרוזת מסודרת ( ראו .serialize() ליותר מידע ).
ב-jQuery 1.3, ערך מוחזר של פונקציה משמש במקום פונקציה כמחרוזת.
ב- jQuery 1.4,
שיטה $.param()
מסדרת אובייקטים מורכבים רקורסיבלי כדי
לספק שפות מתקדמות ומערכות כמו
PHP ו- Ruby on Rails.
אתם יכולים לבטל את פונקציה הזו גלובלית באמצעות הגדרה
jQuery.ajaxSettings.traditional = true;.
שימו לב:
מכיוון שלמערכות יש יכולת ניתוח מוגבלת של מערכים מסודרים,
עלינו לתת הזהרה כשה מעבירים ארגומנט
obj
שמכיל אובייקט או מערך מקונן בתוך מערך אחר.
ב-jQuery 1.4 HTML5 אלמנטים של קלט גם מסודרים.
אנחנו יכולים להציג שורת בקשה, שמתארת אובייקט וגרסת URI מפוענחת כדלקמן:
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);
ערכים של shallowEncoded ו- shallowDecoded מתריאים כדלקמן:
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
$.param() לפני
jQuery 1.4,
אנחנו יכולים להגדיר ארגומנט
traditional ל- true:
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);
ערכים של
shallowEncoded ו- shallowDecoded
מתריאים כדלקמן:
a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3
דוגמאות
דוגמה 1
מסדר מפתח/ערך של אובייקט.
var params = { width:1680, height:1050 };
var str = jQuery.param(params);
$("#results").text(str);
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
var params = { width:1680, height:1050 };
var str = jQuery.param(params);
$("#results").text(str);
});
</script>
<style>div { color:red; }</style>
</head>
<body>
<div id="results"></div>
</body>
</html>
דוגמה 2
מסדר מספר אובייקטים מורכבים.// <=1.3.2: $.param({ a: [2,3,4] }) // "a=2&a=3&a=4" // >=1.4: $.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4" // <=1.3.2: $.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a=[object+Object]&d=3&d=4&d=[object+Object]" // >=1.4: $.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"

