2012-01-27 14 views
7

Hice serialize() en mi formulario y guardé la cadena, ¿hay alguna función que pueda rellenar valores de la cadena serializada?Leer de serializar para rellenar el formulario

+2

para que quede claro: se está refiriendo a jQuery [ 'serialize()'] (http: // api .jquery.com/serialize /), no alguna función del lado del servidor (como PHP ['serialize()'] (http://www.php.net/manual/en/function.serialize.php))? – Tadeck

Respuesta

7

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

me recomiendan en lugar de la serialización de datos para la comunicación con javascript, utiliza JSON. PHP debe tener json_encode() y json_decode() para ayudar con esto, y javascript también ha incorporado funciones de manejo de JSON, que puede que ni siquiera necesite. Por ejemplo, si $.getJSON obtiene una cadena JSON válida del servidor, se transformará automáticamente en un objeto javascript.

EDIT: suponiendo que se está hablando de jQuery de $.serialize(), que yo sepa, no hay ninguna función para deshacer este (ni siquiera estoy seguro de por qué eso sería cada vez que sea necesario ..) pero esto debería funcionar:

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

Él/ella no dijo nada sobre el lado del servidor. Puede ser solo del lado del cliente (OP acaba de serializar el formulario y luego desea usarlo). – zizozu

+0

@tandu esta es una gran respuesta :) – Firdous

+0

tiene un ligero problema; está reemplazando el signo '@' con '% 40' – Firdous

6

Aquí es la versión actualizada de respuesta de explosión píldoras con las sugerencias adicionales en los comentarios aplicada:

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