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 请求时在 URL 查询字符串中使用。
语法
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 ຈະຖືກການຈັດຕັ້ງຫຼາຍກວ່າ.
ຕົວຢ່າງອື່ນໆ
ພວກເຮົາສາມາດສະແດງຄວາມສຳລັບວັດສະນະຄູ່ມືຂອງວັດສະນະຄູ່ມື ແລະ ຄວາມຮັບຮອງ 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 ເພື່ອສະທັບການຂອງ $.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