当表单数据的各个部分位于不同的页面上时,如何存储它们?

2024-03-08

每当我要为客户准备一份长表格时,我总是想将其分成单独的页面,这样访问者就不必填写全部内容,而是分步骤填写。

就像是:

Step 1  >  Step 2  > Step 3 > Thank You!

我从未这样做过,原因只有一个:我不知道如何有效地存储来自不同步骤的数据?我所说的高效是指如何存储它,以便当访问者决定不在第 3 步完成它时,所有数据都会被删除。

我想出了几种解决这个问题的方法,但我只是不相信其中的任何一个:

  1. 将表单数据存储在数据库中
    我可以想象一个表格,其中的列代表每个问题,最后一列代表一个bool值表格是否已填写?
    但我必须时不时地清理表(甚至可能每次用新数据更新时?)并删除所有条目complete = 0.

  2. 将表单数据存储在会话数据中。
    另一方面,不必将数据存储在数据库中(取决于会话的处理方式),并且所有信息都将存储在 Cookie 中。但是,如果浏览器不支持 cookie 或用户禁用了它们(很少见,但会发生),或者表单包含文件附件,那么这是不行的。

  3. echo'ing 上一页的表单数据为<input type="hidden">在下一页
    是的,我知道这是一个相当愚蠢的想法,但它是一种替代方案。可怜,但确实如此。

Option 1似乎是最好的,但我觉得没有必要将临时数据存储在数据库中。如果这成为一种非常受欢迎的表格,有很多访问者填写,该怎么办?更新/删除的数量可能很大?

我想知道你是如何处理的。


Edit

大卫问了一个很好的问题。我正在使用什么技术?
我个人使用 PHP+MySQL,但我觉得这是一个更通用的问题。无论您使用哪种服务器端技术,请分享您的解决方案,因为我确信该概念可以以一种或另一种方式适应不同的技术。


我认为选项 1 和 2 之间的选择取决于您要存储的数据量。我认为在大多数情况下,您在表单上收集的数据量将相当小(几千字节)。在这种情况下,我认为将其存储在会话数据中是正确的方法。来回传递这么多数据并没有太多开销。此外,除非您的用户所在的计算机具有严格的安全策略,否则该应用程序应该可以运行。如果您明确页面要求,用户可以决定是否继续。

如果您要存储大量表单数据,那么数据库会更好,这样您就不需要来回传递数据。不过,我认为这种情况相当罕见。即使应用程序允许上传文件,您也可以将这些文件保存到临时位置,并且仅在表单完成后将它们写入数据库。您可能想要使用数据库的另一种情况是,如果您的表单需要能够支持用户离开并稍后返回以恢复表单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当表单数据的各个部分位于不同的页面上时,如何存储它们? 的相关文章

  • 获取 byte[]

    我有一个 html 画布 如下所示 output is a base64string of image data var oldImage new Image oldImage onload function var resizeRatio
  • window.open 使用 css 样式

    我想设计我的 window open 目前 我的网页上有一些项目由于解析了某个类而打开 然后在新窗口中打开指定的文本 我想更改字体大小 字体和填充等 这是我的 JavaScript 代码
  • 如何根据条件删除结果以计算平均值

    我有下面的架构 对其的快速解释是 鲍勃评分为 5 5 詹姆斯评分 1 5 梅西百货评分高达 5 5 逻辑 如果我是 A 请查找我屏蔽的所有人 查阅所有电影评论 任何留下电影评论且 personA 已屏蔽的人 请将其从计算中删除 计算电影的平
  • 如何从iframe访问文档中的

    I have an iframe 我在检查器元素中发现 img 标签位于具有 body 标签的 document 中 img src Images landingpage jpg 我需要访问此图像 landing page jpg 以便更改
  • 我应该定义索引(A)和索引(B),还是索引(A,B),或者两者都定义?

    在我的表中 我有两个密切相关的列 A 和 B 我应该考虑哪些因素来决定是否创建 索引 A 和索引 B 索引 A B 以上两者 如果我 仅使用类似的查询where A 5 and B 10 并且从不喜欢where A 5 也可以使用类似的查询
  • Outlook 有条件 CSS If 吗?

    我需要一些特定的 css 来发送 html 电子邮件 但仅限于 Outlook 我正在寻找相当于
  • popstate - 需要单击两次后退按钮才能真正返回

    我正在创建一个单页面并使用 PushState 来更改地址 现在 如果我向后推 则会触发 popstate 并且我想要使页面以动画方式从当前位置滚动到最后一个位置 当然 这是可行的 但页面会跳转到顶部 有谁知道如何防止这种行为 我正在使用
  • 外部 css 文件在 Flask 框架中不起作用

    我正在尝试在我的 html 文件中使用外部 css 文件 起初我使用 bootstrap 框架 效果很好 然而 当我尝试通过添加自定义的css文件来自定义网页时 它根本不起作用 这是我的代码
  • 如何在 https 连接上检索 cookie?

    我试图将 cookie 保存在使用 SSL 但始终返回 NULL 的 URL 中 private Map
  • 无限水平滚动图像循环?

    所以我试图在我的网站上创建一个无限滚动动画 但我一直在努力 原始教程在这里 使用 6 张图像 最后重复 4 张图像以实现无缝过渡 https designshack net articles css infinitephotobanner
  • Django SessionWizardView不执行done方法

    我无法让我的 SessionWizardView 工作 当我提交最后一步时 向导跳回第一步 不执行done方法 views py class CvWizardView CookieWizardView form list InfoPerso
  • 从 Internet Explorer 打印时的默认文件名

    使用 pdf 打印机打印网页 将页面另存为 pdf 时 Chrome 和 Firefox 都使用该页面
  • 使用 html 敏捷包解析 html

    我想从这个 div 中收集所有标签 但不知道如何使用 xpath 方法以最佳方式做到这一点 div class biz info h3 a href profil 78122 s C3 B8rby rehab S rby Rehab a h
  • 通过纯 JavaScript 获取 div 的第 n 个子元素

    我有一个名为 myDiv 的 div 元素 我怎样才能得到 myDiv 的第n个孩子DOM https en wikipedia org wiki Document Object Model操纵 Markup function reveal
  • Rails、REST 架构和 HTML 5:带有预检请求的跨域请求

    在致力于使我们的网站 HTML 5 友好的项目时 我们渴望采用跨域请求的新方法 不再通过隐藏的 iframe 发布 使用访问控制 http www w3 org TR access control 根据规范 我们开始设置一些测试来验证各种浏
  • 在 Chrome 中为

    我已经看到这个问题多次出现 但没有任何明确的解决方案 我正在加载一个简单的视频
  • 打印表数据mysql php

    我在尝试打印表格的一些数据时遇到问题 我是 php mysql 的新手 但我认为我的代码是正确的 这里是 h1 Lista de usu rios h1
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • 哪些 HTML 元素不能包含子节点?

    我一直在寻找一份详尽的清单 但在任何地方都找不到 为了避免必须仔细阅读规范 有谁知道它们是什么 我认为可以包含子元素的补充元素列表也很有用 XHTML 1 和 HTML5 之间的列表有何不同 您可以在以下位置找到 void 元素 不能有任何
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮

随机推荐

  • 如何使用Content Provider实现复杂的查询?

    我问这个问题是因为我不太确定如何与 Android 内容提供商合作 我的数据库子集包含 8 个表 我需要创建复杂的查询来获取一些数据 我的内容提供程序可以很好地处理简单的查询 例如 我的表上有一个 PersonPersonModel jav
  • 检查 JavaScript 中的全局属性/函数是否已被覆盖

    JavaScript 可以轻松覆盖全局对象的属性和函数 我想找到一种方法来检查全局属性的原始版本是否已被替换 考虑有人将其放入 HTML 中 如果 myscript js 在某处调用encodeURIComponent 函数 它现在的行为将
  • 将 XX:XX AM/PM 转换为 24 小时制

    我搜索过谷歌 但找不到如何获取字符串 xx xx 上午 下午 例如下午 3 30 并将其更改为现在的 24 小时 例如 前一个时间是 15 30 我研究过简单地使用 if then 语句来操作字符串 但它看起来非常乏味 有什么简单的方法可以
  • 覆盖 Spring 表单错误消息

    在 Spring 中如何覆盖默认表单错误消息 我正在使用一个Validator和一个属性文件来添加我自己的错误消息 但是 例如 如何覆盖因转换 编码错误而打印的消息 它们似乎是自动生成的 我认为对用户没有帮助 Failed to conve
  • 如何优化查找相关性的极其缓慢的 MySQL 查询

    我有一个非常慢 通常接近 60 秒 的 MySQL 查询 它试图找到用户对一项民意调查的投票方式与他们对所有先前民意调查的投票方式之间的相关性 基本上 我们收集在给定民意调查中投票给某一特定选项的每个人的用户 ID 然后 我们查看该小组如何
  • 打开 dired 并选择与前一个缓冲区关联的文件?

    假设我正在编辑blah txt使用 Emacs 我决定打开dired以重命名文件 https stackoverflow com questions 384284 can i rename an open file in emacs 384
  • 如何使用 RxJS 对数据变化做出“反应”?

    RxJS 初学者 我在使用 RxJS 保存和跟踪数据更改时遇到问题 假设我在小视图 小部件中构建我的应用程序 每个视图 小部件都有自己的状态 并且应该对数据更改执行操作 我怎么做 更具体的例子 假设我有一个名为Widget and Widg
  • Autofac 和 Quartz.Net 集成

    有没有人有整合经验autofac and 石英网 如果是这样 最好在哪里控制生命周期管理 IJobFactory IJob 的执行中还是通过事件侦听器 现在 我正在使用自定义 autofacIJobFactory来创建IJob实例 但我没有
  • 在新门户中为辅助角色配置远程桌面

    我在新的 Windows Azure 门户中配置远程桌面连接时遇到问题 创建了一个新的工人角色 配置了远程桌面连接的过期时间 导出并上传生成的证书 发布了工作者角色 在新的 Windows Azure 门户 manage windowsaz
  • ASP.NET C# - 在服务器上保存文件流

    我有初学者的问题 如何将文件流保存到服务器上的文件 我懂了 var source Request QueryString src WebClient webclient new WebClient using Stream stream w
  • 即使使用 where 子句,“SELECT COUNT(*)”也很慢

    我试图弄清楚如何优化 MySQL 中非常慢的查询 我没有设计这个 SELECT COUNT FROM change event me WHERE change event id gt 1212281603783391 COUNT 32240
  • 如何通过蓝牙麦克风录制音频

    我正在尝试通过蓝牙耳机麦克风录制音频 但我只能听到音频 但无法通过蓝牙麦克风录制音频 而是可以从移动麦克风录制语音 我正在使用下面的代码 IntentFilter newintent new IntentFilter newintent a
  • 如何使用 Delphi 在 Openoffice 文档的页眉/页脚/表格中搜索文本标签并替换为图像

    我有打开的 Office 模板文档 我需要在其中搜索 CHART 100 等标签 并将其替换为驻留在 PC 上某个文件夹中的图像文件 我正在使用上一个问题中提到的方法 如何使用 Delphi 在 OpenOffice 文档中插入图像 htt
  • 使用Python请求模块尝试/除外的正确方法?

    try r requests get url params s thing except requests ConnectionError e print e 它是否正确 有没有更好的方法来构建这个 这会涵盖我所有的基础吗 看看请求异常文档
  • Flutter中刷新ListView

    我怎样才能刷新ListView 假设在页面 A 中 我有一个ListView 并且该行项目中有一个菜单图标 当我单击菜单图标时 它将显示一个底部工作表对话框 其中有一个删除图标 单击删除图标时 会弹出删除确认对话框 单击确认对话框中的 是
  • Gradle 无法构建 ActionBarSherlock

    我正在使用基于 IDEA 的新 Android studio 并尝试在主模块的依赖项中使用 ABS 库构建项目 我收到错误 Gradle package com actionbarsherlock app does not exist Gr
  • 标头防护难题 - 已在 .obj 问题中定义

    我有一个类 A 它必须包含两个文件 类 X 和类 Y 不幸的是 类 Y 还需要在其头文件中包含类 X 因为构造函数将指向类 X 类型的指针作为参数 潜在的问题是会出现链接器错误吗 因为类 A 现在有两份类 X 的副本 一份是它需要使用的 一
  • ORU-10027:缓冲区溢出,限制为 100000 字节

    我在 PL SQL 中生成 100k 记录时遇到以下错误 我创建了一个包并从匿名块调用该包 Error report ORA 20000 ORU 10027 buffer overflow limit of 100000 bytes ORA
  • 如何在 Swift 中获取 PDF 中的所有文本?

    我有一个 PDF 文档 想提取其所有文本 我尝试了以下方法 import Quartz let url NSBundle mainBundle URLForResource test withExtension pdf let pdf PD
  • 当表单数据的各个部分位于不同的页面上时,如何存储它们?

    每当我要为客户准备一份长表格时 我总是想将其分成单独的页面 这样访问者就不必填写全部内容 而是分步骤填写 就像是 Step 1 gt Step 2 gt Step 3 gt Thank You 我从未这样做过 原因只有一个 我不知道如何有效