Método param() do jQuery ajax
exemplo
serializar um key/value Objeto:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
Resultado:
width=1680&height=1050
Exemplo TIY
Imprimir o resultado da serialização do objeto:
$("button").click(function(){ $("div").text($.param(personObj)); });
definição e uso
O método param() cria uma representação serializada de array ou objeto.
Este valor de serialização pode ser usado na consulta da URL ao fazer uma solicitação AJAX.
sintaxe
jQuery.param(object,traditional)
parâmetro | descrição |
---|---|
object | array ou objeto a ser serializado. |
traditional | definir se deve usar a serialização tradicional (serialização de parâmetros). |
descrição detalhada
O método param() é usado para converter os valores dos elementos em uma representação de string serializada. Veja .serialize() Saiba mais.
Para o jQuery 1.3, se o parâmetro passado for uma função, o .param() retornará o valor da função, em vez de retornar a função como uma string.
Para o jQuery 1.4, o método .param() serializará o objeto de forma recursiva em profundidade para atender aos requisitos de linguagens de script modernas, como PHP, Ruby on Rails, etc. Você pode desativar essa função globalmente configurando jQuery.ajaxSettings.traditional = true;.
Se o objeto passado para a array estiver presente, deve ser representado por .serializeArray() o valor retornado é um array de objetos no formato:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"} {name:"job",value:"Rock Star"}]
Atenção:Devido à limitação de capacidade de alguns frameworks na análise de números serializados, por favor, tenha cuidado ao passar arrays contendo objetos ou arrays aninhados como parâmetros!
No jQuery 1.4, os elementos input do HTML5 também serão serializados.
Mais exemplos
Podemos exibir a representação de consulta da string do objeto e a versão URI codificada da seguinte forma:
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);
Os valores de recursiveEncoded e recursiveDecoded são exibidos a seguir:
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
Você pode definir o parâmetro traditional como true para simular o comportamento do $.param() nas versões anteriores ao 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);
Os valores de recursiveEncoded e recursiveDecoded são exibidos a seguir:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3