2010-05-13 40 views
5

Tôi đang tạo biểu mẫu động để chỉnh sửa dữ liệu trong đối tượng json. Đầu tiên, nếu một cái gì đó như thế này tồn tại cho tôi biết. Tôi không muốn xây dựng nó nhưng tôi đã tìm kiếm nhiều lần cho một công cụ và đã tìm thấy chỉ cây giống như các cấu trúc yêu cầu nhập dấu ngoặc kép. Tôi sẽ vui lòng đối xử với tất cả các giá trị như chuỗi. Chức năng chỉnh sửa này dành cho người dùng cuối nên nó cần phải dễ dàng không đáng sợ.ràng buộc giá trị đối tượng json lồng nhau vào trường biểu mẫu

Cho đến giờ tôi có mã tạo bảng lồng nhau để biểu diễn đối tượng json. Đối với mỗi giá trị tôi hiển thị một trường biểu mẫu. Tôi muốn liên kết trường biểu mẫu với giá trị json lồng nhau được liên kết. Nếu tôi có thể lưu trữ một tham chiếu đến giá trị json, tôi sẽ xây dựng một mảng các tham chiếu đến từng giá trị trong một cây đối tượng json. Tôi đã không tìm thấy một cách để làm điều đó với javascript.

Phương pháp tiếp cận cuối cùng của tôi sẽ là duyệt qua bảng sau khi chỉnh sửa được thực hiện. Tôi thà có bản cập nhật năng động nhưng một trình đơn sẽ tốt hơn là không có gì.

Bất kỳ ý tưởng nào?

// the json in files nests only a few levels. Here is the format of a simple case, 
{ 
"researcherid_id":{ 
    "id_key":"researcherid_id", 
    "description":"Use to retrieve bibliometric data", 
    "url_template" :[ 
    { 
     "name": "Author Detail", 
     "url": "http://www.researcherid.com/rid/${key}" 
    } 
    ]   
} 
} 

$.get('file.json',make_json_form); 

function make_json_form(response) { 

    dataset = $.secureEvalJSON(response); 
    // iterate through the object and generate form field for string values. 

} 

// Then after the form is edited I want to display the raw updated json (then I want to save it but that is for another thread) 

// now I iterate through the form and construct the json object 
// I would rather have the dataset object var updated on focus out after each edit. 

function show_json(form_id){ 
var r = {}; 
var el = document.getElementById(form_id); 
table_to_json(r,el,null); 
$('body').html(formattedJSON(r)); 
} 
+2

để bạn muốn tạo biểu mẫu dựa trên đối tượng và trường biểu mẫu liên kết với thuộc tính đối tượng? cấu trúc đối tượng trông như thế nào? JSON chỉ là một biểu diễn chuỗi và bạn sẽ thấy dễ dàng hơn khi xử lý các đối tượng Javascript và tuần tự hóa thành JSON ở cuối khi cần. – Anurag

Trả lời

0

Cách tiếp cận đơn giản hơn nhiều là chấp nhận gửi biểu mẫu và xuất dữ liệu ở định dạng JSON. Bằng cách đó, không cần phải ràng buộc các biến.

0

Có một mẫu động cơ đơn giản mà tải dữ liệu JSON trực tiếp vào biểu mẫu. Xem plugin http://plugins.jquery.com/project/loadJSON. Nó hoạt động tương tự như cách Jack đặt ở đây nhưng nó sử dụng HTML thuần túy cho mẫu.

Bạn có thể xem hướng dẫn cách sử dụng nó trên http://code.google.com/p/jquery-load-json/wiki/WorkingWithFormElements và ví dụ trực tiếp trên http://jquery-load-json.googlecode.com/svn/trunk/edit.html?ID=17.

Các vấn đề liên quan