2011-11-18 51 views
0

我有一个消费者网站,它为用户提供了一个允许用户提交他们的批准的批准表单,但是我想根据所做的某些选择限制表单编号提交,以及先前的选择已提交。截至目前,即使用户批准后,用户仍然可以访问该表单,并且我们希望在批准后停止提交。基于表单选择的限制表单提交

有3组选择的:[在第一初始选项,没有任何其他组应该被示出]

集1

批准(单选按钮)

不赞成(单选按钮)

设置2 [该设置取决于设置1的选择。如果选择了Set 1中的“Disapprove”,则应显示此组。否则,它会被隐藏。]

修订(单选按钮)

校正(单选按钮)

集3 [本集是依赖于集2的选择(当然设置2可见)。如果“修正”或“校正”,从组1中选择,然后显示不是“修订文本”或基于来自组相应的选择“校正文本” 2]

修订文本(文本区域)

更正文本(textarea)

第2组依赖于第1组,而第3组依赖于第2组的选择。

好了,这些都是提交总我想根据所做的选择:

  • 如果用户...... 第一批准,动态总提交设置为1。表单不会提交下一次,计算当前提交为1

  • 如果用户...... 第一不赞成,动态设定总意见书2。剩余的一个更提交,计数当前提交为1

  • 如果用户... 第一批准,然后不赞成,动态设定总提交至3。剩余的一个更提交,计数当前提交为1

  • 如果用户... 第一不赞成然后批准,动态设定总提交到2。剩余一个提交内容,将当前提交的内容计为1.

  • 如果用户...首先不赞成,然后选择修改,显示修订textarea和动态设置提交总数为2。剩余的一个更提交,计数当前提交为1

  • 如果用户... 第一不赞成和随后选择校正显示校正textarea的和动态设定总提交到2。剩余一个提交内容,将当前提交的内容计为1.

这是我希望提交限制的一般模式。所以基本上,如果用户同意,他们不能再提交表格。如果用户不同意他们只允许2个额外的提交。我还没有完全解决,但我希望得到一些专家的建议和帮助。

另一个要考虑的是任何替代方案,如果用户已禁用JavaScript和关闭Cookie(如果给定的解决方案需要他们。)

+0

如果我们不知道服务器端使用的是什么语言,那么帮助您想出一个非JS的解决方案并不容易......您还可以解释您确实遇到了哪些问题用?计算他们被允许/计数的提交数量/ ???你到目前为止尝试过什么,为什么它没有工作? – Basic

+0

另外,你能澄清你提交的意思吗?例如,在您最后的场景中,用户拒绝,然后更正,添加一些文本并最终提交表单 - 接下来会发生什么?他们获得完全一样的表格,以便他们可以再次提交?或者您是否在每个选项之后设想“提交”? – Basic

+0

@Basiclife,感谢您的参与。我真的想要一个适合我的情况的独特解决方案,这就是为什么我没有包含我没有的解决方案(我的文章的原因)。我在PHP开发,并会一个JS解决方案(带有禁用的解决方法)或非JS解决方案。至于解决方案是js还是非js,这不是一个请求,只是说*如果解决方案是基于javascript的,或者依赖于启用了cookie,那么如果它们没有启用,那么解决方法是什么?因为我请参阅这些类型的表单解决方案是基于js的,这取决于记住用户信息的Cookie。 – gdinari

回答

1

应对“非JavaScript”,你需要让现场工作没有脚本支持。这总是第一步。无论如何,所有的验证和逻辑都必须复制到服务器上,因为您无法控制客户端。

一旦你的页面在没有脚本的情况下工作,你就可以编写客户端脚本(比如通过AJAX提交)来提供更多功能或者更高效的用户界面。

+0

解释:“为了不处理JavaScript,你需要让你的网站在没有JavaScript的情况下工作”。循环很多? – Basic

+0

@RobG,谢谢。我确实考虑过ajax,但从未在其中开发过,因此希望使用该语言的一些示例或解决方案。 – gdinari

+0

@gdinaro AJAX真的很简单 - 想象一下你的浏览器从服务器请求一个页面,除了不是将它显示给用户,javascript会将内容作为一个stringxml文档来获取。如果你正在走下JS路线,那么让jQuery变得更容易 - 1行代码:)'$。ajax()' – Basic