русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей
Имейл
Имя и фамилия

jQuery.param( объект )

Возвращает: Строка
Описание: Создает последовательное представление массива или объекта, подходящее для использования в строке запроса URL или запросе Ajax.

Аргументы

jQuery.param( объект )

Добавлена в версию: 1.2
объект
Объект или массив для упорядочивания.

jQuery.param( объект , традиционный)

Добавлена в версию: 1.2
объект
Объект или массив для упорядочивания.
традиционный
Логическое значение указывающее на выполнение традиционного "поверхностного" упорядочивания.

Эта функция используется для преобразрования значений формы в упорядоченную строку ( для большей информации смотрите .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);
Результат выполнения кода выше:
Пример 1 - Полный код:
<!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"

Была ли эта информация полезной?
   

Комментарии