保存为草稿然后更新草稿?

时间:2013-07-26 17:58:55

标签: php html mysql ajax

我的表格很少。 现在点击“另存为草稿”按钮,ajax调用将进入,poplulated字段将存储在数据库中。

当用户再次点击“另存为草稿”时,此时应更新上一个字段,而不是创建新字段。

所以我想了一些补救措施

- 创建隐藏字段并在加载页面时使用唯一编号加载它,并将其存储在SESSION变量中。

在将唯一编号与会话变量进行比较后,如果编号相同则更新sql中的字段,否则在sql中创建一个新字段。

上述解决方案是正确的还是人们使用不同的解决方案?

3 个答案:

答案 0 :(得分:3)

为什么不在第一次调用'save draft'的Ajax上找回一些非常简单的JSON,比如

{ field_id: 1 }

然后保存通过将它放在输入中将该值保存在DOM中,或者更好 - 只需将其存储在变量中。然后,您可以在后续草稿/最终保存中检查此变量是否存在,并更改您的Ajax帖子以考虑它。您可以在表格中添加一个额外的布尔列,例如跟踪帖子阶段的final。从服务器端的角度来看,您可以通过调用MySQLi's insert_id() method例如

轻松获取MySQL插入的值

非常好的额外触摸可能还涉及使用pushState方法更新网址(例如index.php?draft=1)。这样,即使用户单击后退按钮,他们也可以返回到正确的页面,您可以为他们提取已保存的数据。

答案 1 :(得分:1)

1解决方案 =将字段值添加到数据库表 =比较再次提交时的值,如果您的值匹配,则不做任何更改,因此您可以更新mysql。

2 Solition =其他解决方案可能是在Sessions中存储数据,当用户完成编辑后,将它们添加到DBase tbl。

第三种解决方案 将数据存储到任何平面文件系统,然后使用它添加到mysql表中。

第四个解决方案 允许表单中的编辑字段,以便用户可以随时更改数据。

答案 2 :(得分:1)

如果数据库中有自动增量字段,则可以获取该字段的ID。当用户保存为草稿时,您可以将更改存储在数据库中,并将记录的ID存储在会话中。然后,当用户再次保存为草稿时,您可以使用该ID更新数据库中的右侧行。

您可以在表单中存储id,但是然后用户可以轻松(甚至可能意外地)使用错误的ID发布数据并更新错误的行。