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() تمثيلاً مسلسلاً للمجموعة أو الكائن.
يمكن استخدام القيمة المسلسلة في سلسلة الاستعلام في طلب 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، سيتم سلسلة عناصر input من HTML5 أيضًا.
مزيد من الأمثلة
يمكننا عرض عرض نصيحة الطلب واستدلال URL كما يلي:
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 لضمان سلوك $.param() في إصدارات jQuery 1.4 المبكرة:
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