Metodo jQuery ajax - param()

esempio

Serializzare un chiave/valore Oggetto:

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

Risultato:

width=1680&height=1050

Esempio TIY

Ecco il risultato della serializzazione dell'oggetto:

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

Prova tu stesso

Definizione e uso

Il metodo .param() crea una rappresentazione serializzata di array o oggetti.

Questo valore di serializzazione può essere utilizzato nella stringa di ricerca dell'URL durante la richiesta AJAX.

sintassi

jQuery.param(object,traditional)
parametro descrizione
object l'array o l'oggetto da serializzare.
traditional specificare se utilizzare il modo tradizionale per la serializzazione a livello superficiale (serializzazione dei parametri).

la descrizione dettagliata

Il metodo .param() serve a convertire i valori degli elementi in una rappresentazione stringata serializzata. Vedi .serialize() Per ulteriori informazioni.

Per jQuery 1.3, se il parametro passato è una funzione, .param() restituirà il valore di ritorno della funzione, non la funzione stessa come stringa.

Per jQuery 1.4, il metodo .param() serializzerà l'oggetto in modo ricorsivo per soddisfare le esigenze dei linguaggi di script moderni, come PHP, Ruby on Rails ecc. Puoi disabilitare questa funzione globalmente impostando jQuery.ajaxSettings.traditional = true;

Se l'oggetto passato è nell'array, deve essere: .serializeArray() il valore di ritorno è un array di oggetti in formato:

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

Attenzione:Poiché alcune framework hanno capacità limitate nella解析serializzati numeri, quindi quando si passano array che contengono oggetti o array annidati come parametri, si prega di prestare attenzione!

In jQuery 1.4, anche gli elementi input di HTML5 vengono serializzati.

Più esempi

Possiamo visualizzare in questo modo la rappresentazione di query stringa dell'oggetto e la versione URI codificata:

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

I valori di recursiveEncoded e recursiveDecoded sono elencati di seguito:

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

Puoi impostare il parametro traditional su true per simulare il comportamento di $.param() nelle versioni precedenti 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);

I valori di recursiveEncoded e recursiveDecoded sono elencati di seguito:

a=%5Boggetto+Oggetto%5D&b=1&b=2&b=3
a=[oggetto+Oggetto]&b=1&b=2&b=3