2012-01-27 13 views
7

Zrobiłem serialize() na moim formularzu i zapisałem ciąg znaków, czy jest jakaś funkcja, która może zapełnić wartości z powrotem do postaci z serializowanego ciągu?Przeczytałem od serializacji do wypełnienia formularza

+2

Wystarczy być jasne: masz na myśli jQuery [ 'serializacji()'] (http: // api .jquery.com/serialize /), a nie jakąś funkcję po stronie serwera (taką jak PHP ['serialize()'] (http://www.php.net/manual/en/function.serialize.php))? – Tadeck

Odpowiedz

7

Wyjazd http://phpjs.org/functions/unserialize:571

polecam zamiast szeregowania danych do komunikacji z javascript, należy użyć JSON. PHP powinno mieć json_encode() i json_decode(), aby pomóc w tym, a javascript również wbudował funkcje obsługi JSON, których możesz nawet nie potrzebować. Na przykład, jeśli $.getJSON otrzyma prawidłowy ciąg JSON z serwera, zostanie automatycznie przekształcony w obiekt javascript.

EDIT: zakładając, że mówimy o jQuery $.serialize(), które znam nie ma funkcji, aby cofnąć (nie jestem nawet pewien, dlaczego, że nigdy nie będzie konieczne ..), ale to powinno działać:

$.each(serialized.split('&'), function (index, elem) { 
    var vals = elem.split('='); 
    $("[name='" + vals[0] + "']").val(vals[1]); 
}); 
+0

Nie powiedział nic o stronie serwera. Może to być tylko po stronie klienta (OP tylko serializuje formularz, a następnie chce go użyć). – zizozu

+0

@tandu to jest świetna odpowiedź :) – Firdous

+0

mają niewielkie kłopoty; zastępuje znak "@" za pomocą "% 40" – Firdous

6

Oto zaktualizowana wersja odpowiedzi pigułki eksplozja z dodatkowymi sugestiami w komentarzach zastosowano:

$.each(serialized.split('&'), function (index, elem) { 
    var vals = elem.split('='); 
    $("[name='" + vals[0] + "']").val(decodeURIComponent(vals[1].replace(/\+/g, ' '))); 
}); 
Powiązane problemy