jQuery ajax - روش param()

مثال

یک کلید/مقدار اشیاء:

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

نتایج:

width=1680&height=1050

مثال‌های عملی

نتایج سریال‌سازی شده اشیاء را نمایش دهید:

$("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"}]

注意:因为有些框架在解析序列化数字的时候能力有限,所以当传递一些含有对象或嵌套数组的数组作为参数时,请务必小心!

jQuery 1.4 میں، HTML5 کا input علامت بھی سیریلائزیشن کی جائے گی۔

بیشتر مثال

آئیڈیا کی جستجو کو جیسا کا نمائش کرسکتے ہیں اور 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);

recursiveEncoded اور recursiveDecoded کی اقدار مندرجہ ذیل ہیں:

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

traditional پارامتر کو true رکھ سکتے ہیں، تاکہ jQuery 1.4 سے پہلے کی نسلوں میں $.param() کا کام انجام دیا جائے:

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 اور recursiveDecoded کی اقدار مندرجہ ذیل ہیں:

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