我必须为用户填写一份大表格,以便申请我在大学毕业的学习。将收集大量信息(多个地址,个人信息,商业信息,过去的学校信息,经验等......),我想知道处理所有这些的最佳方法。我将使用PHP和Javascript。
我是否可以使用任何帮助器或框架来帮助构建/验证表单,我可以将其放入现有项目中?
就跟踪大型表格和结果数据而言,也希望得到任何建议。
答案 0 :(得分:5)
您需要使用多个页面,并且需要包含一个用户可以离开的机制,然后返回并填写表单的其余部分(或者如果它们意外断开连接)。否则,您将遇到各种各样的用户问题,这不是因为您的服务,而是因为他们使用的是计算机和互联网连接,这些都是不稳定的等等。
调查软件可能是您正在做的事情的合理近似值,并且大多数PHP CMS都有调查软件包。您是从头开始构建这个,还是下面有现有的CMS?
- 亚当
答案 1 :(得分:3)
一些提示,但不知道您表单的所有细节:
不要一次向用户显示所有内容 - 这可以通过多个页面完成,也可以通过在用户前进时有选择地显示/隐藏表单上的元素来实现。提供上下文导航,其中显示“您在第3步(共10步)”,以便用户可以了解他们在表单中的位置以及完成该操作所需的工作量。
提供一种保存和返回的机制是个绝妙的主意。如果可能,请提供指向他们选择的电子邮件帐户的链接 - 您希望使该组件尽可能易于使用,并要求他们填写额外的用户名/密码以检索其数据只是完成的另一个障碍。 / p>
只询问你绝对需要的东西。是的,你将不得不在这里进行一些政治斗争 - 每个人都希望得到尽可能多的东西。解决这个问题的一种方法(特别是当你有来自多个团体的压力时有效)是建立一些原型:1,一切都有,一个有几个部分减少或删除。让每个小组的利益相关者填写这两个小组并测量他们完成的时间或滚动吞吐量。当您获得完成数据,并且他们意识到每个其他组要求的数量(除了他们的组)他们更容易使用。 简而言之,尽可能删除 - 让用户稍后返回以提供更多详细信息。
记下索引卡上的所有输入,并查看它们在逻辑上如何组合在一起。通常情况下,您会找到更有效的分组或订单。你很可能会想出更多有用的想法。在将纸质表单转换为在线表单时,这非常重要非常重要。关于此主题的Usability.gov has a fantastic case study。
答案 2 :(得分:0)
List Apart有一篇文章on building sensible forms是一本很好的读物
为什么第一个实例上的表单需要很大?难道你不能将它削减到帐户的基本要素,并提供一种方法让他们稍后回来充实其余的细节?
对于表单验证,在jQuery验证插件Validation
上弹出一个gander答案 3 :(得分:0)
我同意亚当,但我有一些建议。
如果我是你,我会用下一个按钮创建一些多个表单的虚拟隐藏标签。 你可以创建一些可以通过javascript控制的东西。首先展示第一个将收集姓名,生日,电子邮件等个人信息的人。 一旦用户将它们填满并点击下一个按钮,将其隐藏并显示另一个将要求其他信息的信息,如地址等。
一旦整个潜水完成,在最后一个div放置一个提交按钮,它将立即将整个信息提交给服务器。
为什么这样做?
用户不会感到震惊,因为每次都不会看到很长的表格,并会填写患者。
您立即点击服务器;通常Universtites和大学的服务器太忙,您最好设计一个最不受服务器影响的表单。这可以算作性能提示。
由于您将立即提交整个数据,因此您不必担心用户将继续填写其他页面的问题,因此您将使用较少的会话,这仍将算作性能提示
这种方式使你的表单更有趣,你可以称你做了类似Ajax的事情。
答案 4 :(得分:0)
您可以添加Javascript表单验证,使其更加用户友好,但有一点你不应该吝啬的是服务器端验证......这在PHP中一直很糟糕。
filter library,尤其是filter_input_array()
,这将使您的生活更轻松一百万倍,因为您可以通过编程方式构建输入验证,而无需复制和粘贴大量检查。这需要一些时间来习惯,但它比旧的做事方式要好得多。