Méthode param() de jQuery ajax

exemple

Sérialiser un key/value Objet :

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);

Résultat:

width=1680&height=1050

Exemple TIY

Affichez le résultat de la sérialisation de l'objet :

$("button").click(function(){
  $("div").text($.param(personObj));
});

Essayez-le vous-même

Définition et utilisation

La méthode param() crée une représentation sérialisée de tableau ou d'objet.

Cette valeur de sérialisation peut être utilisée dans la chaîne de recherche de l'URL lors d'une requête AJAX.

syntaxe

jQuery.param(object,traditional)
paramètres description
object tableau ou objet à sérialiser.
traditional définir si la sérialisation utilise la méthode traditionnelle (sérialisation des paramètres).

une description détaillée

La méthode param() est utilisée pour convertir les valeurs des éléments en une représentation de chaîne sérialisée. Voir .serialize() Pour plus d'informations.

Pour jQuery 1.3, si le paramètre passé est une fonction, .param() renverra la valeur de retour de cette fonction, plutôt que de renvoyer la fonction sous forme de chaîne de caractères.

Pour jQuery 1.4, la méthode .param() sérialise l'objet de manière récursive en profondeur pour répondre aux besoins des langages de script modernes, tels que PHP, Ruby on Rails, etc. Vous pouvez désactiver cette fonction globalement en définissant jQuery.ajaxSettings.traditional = true;.

si l'objet passé est dans le tableau, il doit être sous la forme de .serializeArray() le retour est un tableau d'objets au format :

[{name:"first",value:"Rick"},
{name:"last",value:"Astley"}
{name:"job",value:"Rock Star"}]

Attention :Parce que certains cadres ont des capacités limitées lors de l'analyse de nombres sérialisés, veuillez faire preuve de prudence lors de la transmission d'arrays contenant des objets ou des tableaux imbriqués en tant que paramètres !

Dans jQuery 1.4, les éléments HTML5 input seront également sérialisés.

Plus d'exemples

Nous pouvons afficher de la sorte la représentation en chaîne de recherche de l'objet et sa version URI encodée :

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);

Voici les valeurs de recursiveEncoded et 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

Vous pouvez définir le paramètre traditional sur true pour simuler le comportement de $.param() dans les versions précédentes de 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);

Voici les valeurs de recursiveEncoded et recursiveDecoded :

a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3