Аргументы
jQuery.param( объект )
jQuery.param( объект , традиционный)
Эта функция используется для преобразрования значений формы в упорядоченную строку ( для большей информации смотрите .serialize() ).
В jQuery 1.3, возвращаемое значение функции используется вместо функции как строка.
В jQuery 1.4,
метод $.param()
упорядывачивает глубокие объекты рекурсивно для обеспечения современных сценариев языков и таких систем как PHP и Ruby on Rails.
Вы можете отключить эту функцию глобально установив
jQuery.ajaxSettings.traditional = true;.
Примечание:
Потому что некоторые системы имеют ограниченные возможности для структурного анализа упорядоченных массивов нам необходимо выдавать предостережение при передачи аргумента объект,
который включает объекты или массивы вложенные в другой массив.
В 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);
Получим следующие сообщения со значениями 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
$.param() до
jQuery 1.4,
мы могли установить аргумент
традиционный в 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"

