AJAX/HTML如何存储复杂的数据

AJAX / HTML How to store complex data

本文关键字:存储 复杂 数据 HTML 何存储 AJAX      更新时间:2023-09-26

考虑这个用例。

我有一个表(<table>),它使用户能够输入在给定的一周中花在给定项目上的时间。

例如。

--------------------------------------
|Project ID: | Monday | Tuesday | ...|
|   123      | 7:15   |   3:45  | ...|
|   124      | 1:15   |   0:45  | ...|
|   125      | 0:00   |   0:00  | ...|

然后,在用户输入这些行之后,我需要回发所有这些行。我以前也做过类似的事情,在这里我有单独的表单来描述每一行,然后用jQuery迭代它们,以构建一个JSON对象,将它们作为数组包含在内。

每行结构:

<tr>
   <form name="RowData">
       <input type="hidden" Name="ProjectID" value="123" />
       <input type="hidden" Name="Monday" value="..." />
       <input type="hidden" Name="Tuesday" value="..." />
   </form>
   <td></td> <!-- Containing the text input and so forth -->
   <td></td>
   <td></td>
</tr>

回发结构:

json:{
     rows:[
          {
          ProjectID: 123, 
          Monday: '7:15',
          Tuesday:'3:45', // etc...
          },
          {
          ProjectID: 124, 
          Monday: '1:15',
          Tuesday:'0:45'
          }, // etc...
     ]
}

*请注意,这并不是我将如何发送数据的实际表示,而只是一个结构,让你了解我的想法*

但我觉得必须有一个更好、更直观的方法来做到这一点。将复杂的结构存储在HTML或Javascript中,以便通过AJAX更容易地发布。

我把它存储在Javascript中的问题是让它与页面和用户看到的内容保持同步。

如果你们中的一些人有更好的方法,请告诉我,并可能详细解释它是如何工作的,以及为什么它是一种更好的方法。

嗨你可以试试http://knockoutjs.com/

我在MVC中使用了一个简单的技巧,如果你想的话,你也可以使用它。

<script>
    var dataMap = {};
</script>
@foreach(var item in Model.Urmodel) {
 <tr data-id="@item.Id"> ... etc </tr>
 <script>
dataMap['@item.Id'] = @Json(item); // you'd have to make a Html helper to do this
</script>
}