将整个html表传递回服务器并替换数据库表?

时间:2010-07-30 21:02:47

标签: javascript jquery ajax html-table

我遇到了这样的问题。下面是场景:例如,如果我有一个包含多个列的数据库表A.一旦服务器(PHP脚本)将数据库传递给Web客户端,它就会呈现为HTML表。现在,这是客户端的一些要求。用户将能够从HTML表中添加/删除多行,此外,他们还可以更改行顺序。如果我们可以在一些jquery插件的帮助下完成客户端(例如:http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/)。现在,我的问题是,我怎么能把这些信息传回服务器?因为有新行和删除行,原始表行顺序(如插件tableDnD.serialize函数不够)是不够的。

这是我的解决方案:将整个HTML表传递回服务器,然后用信息替换整个数据库表。在这种情况下,如何将一个可能很大的HTML表传递回服务器?对于这个问题,我找到了这样的答案: Iterate through HTML table using jQuery, converting the data in the table into JSON 基本上,将整个HTML表格转换为json格式并将其传递给服务器端以替换整个表格。

有没有比这更好的解决方案?任何建议,将不胜感激!

1 个答案:

答案 0 :(得分:3)

恕我直言,如果您正在构建仅限JavaScript的解决方案,则无需将整个HTML表格传回服务器。

  • 最初加载表时,将id属性设置为SQL表中行的唯一标识符。
  • 更改数据(删除或添加行或更改行内容)时,将ID保存到数组中
  • 更改后提交数据时,仅提交已更改的行

当然,您可能需要稍微调整一下,但这只是一个大概。例如,要做的一件事就是将删除行的ID添加到单独的数组中。然后,您可以单独传递它以从数据库中删除匹配的行。