2009-03-04 35 views
0

我必须建立一个大型表格供用户填写,以便申请在我工作的大学毕业的学生。将收集大量的信息(多个地址,个人信息,商业信息,过去的学校信息,经验等),我想知道处理这一切的最佳方法。我将要使用PHP和Javascript。建立一个大型表格,需要咨询

是否有任何助手或框架可用于帮助构建/验证表单,我可以将其插入到现有项目中?

也想就任何建议,跟踪一个大表格和结果数据。

回答

5

您需要使用多个页面,并且您需要包含一个用户可以离开的机制,然后再回来并填写表单的其余部分(或者意外断开连接)。否则,你会遇到各种各样的用户问题,而不是由于你的服务,而是因为他们正在使用计算机和互联网连接等片状等。

调查软件可能是一个合理的近似值,重做,并且有大多数PHP CMS的调查软件包。你是从头开始构建它,还是你有一个现有的CMS?

- 亚当

0

列表除了有一篇文章on building sensible forms这是一个很好的阅读

为什么形式需要很大的第一个实例?难道你不能把它缩小到账户的基本要素,并提供一种方法让他们稍后再回来充实剩下的细节?

对于表单验证,弹出了jQuery验证插件甘德,Validation

3

的一些技巧,不知道你的表格的所有细节:

不显示在用户一旦一切 - 这可以通过多个页面来完成,也可以通过在用户通过表单时选择性地显示/隐藏表单上的元素来完成。提供上下文导航,指出“您正在进行第3步”,这样用户就可以了解他们在表单中的位置以及完成工作需要付出多少努力。

提供一个机制来保存和返回是一个奇妙的想法。如果可能,请提供一个指向他们选择的电子邮件帐户的链接 - 您希望尽可能方便地使用此组件,并要求他们填写额外的用户名/密码以检索其数据,这只是完成的另一个障碍。

只问你绝对需要什么。是的,你将不得不在这里进行一些政治斗争 - 每个人都希望尽可能多地获得。解决这个问题的一种方法(特别是在你有来自多个团体的压力时有效)是建立一些原型:1与一切,一个与几个部分减少或删除。每个组的利益相关者填写他们两个并测量他们的完成时间或滚动吞吐量。当你有完成数据,并且他们意识到每个其他小组要求(除了他们的小组)之外,他们更容易合作。 简而言之,尽可能删除 - 让用户稍后再回来提供更多详细信息,如果他们愿意的话。

记下索引卡上的所有输入内容,看看它们在逻辑上如何组合在一起。通常,你会发现更有效的分组或排序。很可能你会想出更多可用的想法。这是极其重要转换纸张表单到在线表单时很重要。 Usability.gov has a fantastic case study关于这个话题。

0

那么我同意亚当,但我有一些建议给你。

如果我是你,我会用一个下一个按钮创建一些虚拟的隐藏标签,其中包含多个窗体。 你可以创建一些可以通过javascript控制的东西。首先展示收集个人信息的第一个例如姓名,生日,电子邮件等。 一旦用户填写并点击下一个按钮,将其隐藏并显示其他将询问地址等其他信息的其他人。

一旦整个潜水过程完成,在最后一个div放置一个提交按钮,它将立即将整个信息提供给服务器。

为什么这样做?

  1. 用户不会感到震惊因为每次都不会看到一个长的形式,并会与病人一起填写。

  2. 你一下就打到服务器;通常大学校园和大学的服务器太忙了,你最好设计一个最少打到服务器的表单。这可以算作性能提示。

  3. 由于您将一次提交整个数据,因此您不用担心用户将继续填写其他页面的问题,因此您将使用较少的会话,这仍然会算作性能提示。

  4. 这种方式可以让你的表单更有趣,你可以称你做了类似Ajax的事情。

0

您可以添加JavaScript表单验证,使之更人性化,但有一点你永远不应该吝啬上是服务器端验证......这在历史上一直在可怕的PHP。

有一件事会让你的生活在这里变得容易上百万次,因为你可以通过编程方式构建输入验证,而不必复制和粘贴很多检查,因此这里是filter library,特别是filter_input_array()。这需要一些习惯,但比旧的做事方式要好得多。