【发布时间】:2011-01-13 23:30:59
【问题描述】:
这是一个我想了很久的问题,但是因为不知道怎么形容,所以不想问。。还是不知道有没有我可以很好地描述它,但它就在这里..
我有一个网络应用程序,它允许您操作页面上的一堆元素,但有一个保存按钮。当我点击保存时,我想在一个 POST 中创建/更新所有这些更改(而不是增量)。如果这些 html 元素是第一次在页面上创建,我想将它们作为新条目插入到数据库中。当这些更改第一次保存在数据库中(创建)时,我返回索引 ID,因此如果我再次进行更改,它们将在数据库中更新,而不是再次创建。
难点在于批量保存,以免占用所有带宽。我希望能够混合和匹配创建和更新,但是从创建的元素发回 ID 并将它们映射到正确的 html 元素(以便下次更新它们)需要我了解每个批处理元素的顺序这导致了一些问题。我想知道是否有一种巧妙的方法来创建或更新,并将 ID 正确映射回一个 ajax 请求下的各种元素。
希望这很清楚,如果您需要澄清,请告诉我
谢谢, 马特·穆勒
【问题讨论】:
-
你的元素有什么样的 ID 值?用户是否必须明确告诉页面需要一个新实体,或者是否有实体的某些属性用作键? (例如,如果用户输入最喜欢的度假城市的名称,城市名称可能是“自然”键,因此不必有明确的数据库生成键。)
-
另外:请记住,当事情回到您的服务器应用程序时,一切都将在基于字段名称的映射中。一种常见的做法是让字段名称包含一些索引值(如“name_23”或“name[23]”,具体取决于您的服务器环境)。
-
好问题。为了简单起见,我没有解释整个故事。 ID 是链接到数据库中主键的数字。 ID 存储在 javascript 中,映射到 html 元素。如果你熟悉 jQuery,它就像 $('#htmlelement').data('ID', 3);
-
好吧,当我发布第一条评论时,我没有看到你是第二条评论。嗯,返回给应用程序的内容类似于 {7,9,34,5},它对应于更新/创建的 ID。问题是我必须知道它被批处理以更新 html 元素的顺序。这导致了一些问题..
-
它们都以相同的字段名称保存到同一个表中,因此不会使返回的内容唯一。
标签: php javascript ajax mapping