2012-01-27 39 views
7

Tôi đã làm serialize() trên biểu mẫu của tôi và lưu chuỗi, có chức năng nào có thể điền giá trị trở lại biểu mẫu từ chuỗi được xê-ri hóa không?Đọc từ serialize để điền vào mẫu

+2

Chỉ cần được rõ ràng: bạn đang đề cập đến jQuery [ 'serialize()'] (http: // api .jquery.com/serialize /), không phải một số chức năng phía máy chủ (chẳng hạn như ['serialize()'] của PHP (http://www.php.net/manual/en/function.serialize.php))? – Tadeck

Trả lời

7

Check-out http://phpjs.org/functions/unserialize:571

Tôi khuyên bạn nên thay vì tuần tự dữ liệu cho thông tin liên lạc với javascript, bạn sử dụng JSON. PHP phải có json_encode()json_decode() để trợ giúp việc này và javascript cũng đã được xây dựng trong các chức năng xử lý JSON, mà thậm chí bạn có thể không cần. Ví dụ: nếu $.getJSON nhận chuỗi JSON hợp lệ từ máy chủ, chuỗi này sẽ tự động được chuyển thành đối tượng javascript.

EDIT: giả sử bạn đang nói về jQuery $.serialize(), mà tôi biết không có chức năng để hoàn tác này (tôi thậm chí không chắc chắn lý do tại sao mà sẽ bao giờ cần thiết ..) nhưng điều này nên làm việc:

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

Anh/cô ấy không nói gì về phía máy chủ. Nó có thể chỉ là phía máy khách (OP chỉ được tuần tự hóa biểu mẫu và sau đó muốn sử dụng nó). – zizozu

+0

@tandu đây là một câu trả lời tuyệt vời :) – Firdous

+0

có một chút rắc rối; nó đang thay thế dấu '@' bằng '% 40' – Firdous

6

Dưới đây là phiên bản cập nhật của câu trả lời Thuốc nổ với gợi ý bổ sung trong các ý kiến ​​áp dụng:

$.each(serialized.split('&'), function (index, elem) { 
    var vals = elem.split('='); 
    $("[name='" + vals[0] + "']").val(decodeURIComponent(vals[1].replace(/\+/g, ' '))); 
}); 
Các vấn đề liên quan