Método param() de jQuery ajax
Ejemplo
Serializar un key/value Objeto:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
Resultado:
width=1680&height=1050
Ejemplo TIY
Mostrar el resultado de la serialización del objeto:
$("button").click(function(){ $("div").text($.param(personObj)); });
Definición y uso
El método param() crea una representación serializada de un array o objeto.
Este valor de serialización se puede usar en la cadena de consulta de URL al realizar una solicitud AJAX.
Sintaxis
jQuery.param(object,traditional)
Parámetros | Descripción |
---|---|
object | El array o objeto a serializar. |
traditional | especifica si se debe usar la serialización tradicional (serialización de parámetros) de manera superficial. |
detalles
El método param() se utiliza para convertir los valores de los elementos internamente en una representación de cadena serializada. Consulte .serialize() Para obtener más información.
Para jQuery 1.3, si se transmite un parámetro que es una función, .param() devolverá el valor de retorno de esta función en lugar de devolver la función como una cadena.
Para jQuery 1.4, el método .param() serializará el objeto de manera recursiva en profundidad para cumplir con los requisitos de los lenguajes de script modernos, como PHP, Ruby on Rails, etc. Puede deshabilitar esta función globalmente configurando jQuery.ajaxSettings.traditional = true;.
Si el objeto transmitido está en el array, debe estar en .serializeArray() el valor de retorno es un objeto de array en formato:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"} {name:"job",value:"Rock Star"}]
Nota:Debido a que algunas estructuras de framework tienen limitaciones en la capacidad de análisis de números serializados, por favor ten cuidado al pasar arrays que contienen objetos o matrices anidadas como parámetros!
En jQuery 1.4, también se serializarán los elementos input de HTML5.
Más ejemplos
Podemos mostrar la representación de consulta de objeto y la versión codificada en URI de la siguiente manera:
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);
Los valores de recursiveEncoded y recursiveDecoded se muestran a continuación:
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
Se puede establecer el parámetro traditional en true para simular el comportamiento de $.param() en versiones anteriores a 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);
Los valores de recursiveEncoded y recursiveDecoded se muestran a continuación:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3