【问题标题】:Preserving data over multiple form submission在多个表单提交中保留数据
【发布时间】:2013-03-05 11:06:58
【问题描述】:

我正在构建一个 Web 服务,其中用户可以登录到后端,提交表单,然后其他用户将能够在 Web 服务的前端看到这些信息。

数据提交到 PostgreSQL 数据库很好但是在第二次提交表单时(用户可以返回表单并在必要时更新他们的信息)如果表单中有空白字段,则现有数据在表单被空白数据覆盖。

我怎样才能避免这种情况?我认为用数据库中的数据填充表单字段并允许用户像这样编辑表单会很好,但我不确定如何使用 PHP 实现这一点。目前,用户必须一遍又一遍地完整填写表格,以防止此类数据丢失。

有人能给我一个想法或指出正确的方向吗?

【问题讨论】:

  • 如果不是敏感信息,则通过cookie或服务器端会话将其存储在用户会话中。否则将其存储在数据库中,并在显示下一个表单时,使用您在表单呈现期间从数据库中检索到的数据预填充它,或者(如果您想花哨的话)JavaScript 中的占位符,显示该字段已经有一个值没有透露它是什么。
  • 如果表单中有空白字段,则表单中的现有数据将被空白数据覆盖。您的意思是数据库中的现有数据 对吗?
  • @SandyLee 是的,没错。

标签: php html sql postgresql


【解决方案1】:

使用数据库中较早的条目预先填写表单字段

<input type="text" value="<?php echo $fname;?>" name="first_name" id="first_name" />

【讨论】:

  • 啊,太棒了,谢谢。因此,保存后会将value 写入数据库,如果未经编辑,当然会保持不变?将实施,我期待给你正确的答案。
  • 会有大量数据提交。有没有办法我可以从相关数据表中获取所有数据,然后简单地将其作为一个值回显,而不是在脚本顶部有一个代表每个单独数据列的变量列表?
  • 使用数组。假设您来自数据库的数据存储在一个名为 $results 的数组中; &lt;input type="text" value="&lt;?php echo $results['fname'];?&gt;" name="first_name" id="first_name" /&gt; &lt;input type="text" value="&lt;?php echo $results['lname'];?&gt;" name="last_name" id="last_name" /&gt; &lt;input type="text" value="&lt;?php echo $results['email'];?&gt;" name="email" id="email" /&gt; 等等。基本上如果用户不改变表单的值,就会使用之前存储的值。如果您还需要什么,请告诉我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多