我想知道处理表单处理的最佳做法是什么?处理表单处理的最佳做法
在我来说,我做这样的事情:
- 如果用户没有submited形式
- 显示形式
- 其他
- 如果有是表格错误
-
个
- 显示错误 再次
- 别的
- 显示一则成功消息
- 显示形式
- (和)显示形式再次
- 如果有是表格错误
我问题是我重复表单的HTML代码3次,我不认为这是一个很好的做法(长文件,难以阅读)。
我想知道处理表单处理的最佳做法是什么?处理表单处理的最佳做法
在我来说,我做这样的事情:
我问题是我重复表单的HTML代码3次,我不认为这是一个很好的做法(长文件,难以阅读)。
鉴于在每种情况下您都显示表单,您是否可以默认显示相同的表单,然后添加错误消息等附加内容?
您还在使用哪些其他技术?
您的工作流看起来正确。我不明白为什么你需要重复表单的HTML代码。重组您的代码,以便成功消息显示在表单顶部(如果存在),并且错误显示在输入框旁边(如果存在)。在(PHP?)文件的顶部,处理所有内容并设置将在下面的表单中显示的变量。
您可以使用相同的表单代码,并在窗体上方显示错误/成功消息。
您可以通过以下两种打破你的脚本:
一个显示形式
一个获取表单数据,对其进行检查并返回错误或成功消息
你应遵循Post/Redirect/Get模式来防止表单提交重复。
您可以用这种方式整合,错误处理和成功的消息显示该模式:
if POST_REQUEST:
ERRORS = VALIDATE_FORM()
if ERRORS IS EMPTY:
PROCESS_REQUEST
REDIRECT TO <Successful URL>
DISPLAY_FORM(ERRORS)
这些都是可能的方案:
使用此模式可防止用户在正确提交表单后刷新页面时再次发送表单数据。
Django Framework建议以这种方式处理表单。
的一个好方法,以处理形式显示错误是有VALIDATE_FORM()函数返回一个缔阵列的错误,其中每个键是字段的名称和相应的项目是错误消息的数组。
一般形式错误(不与指定字段关联)应该有一个emtpy键。
这种方式,你可以,例如,显示错误,这种方式在DISPLAY_FORM()函数:
<ul class="errors"><?php foreach(ERRORS['field_name'] as $error) { echo "<li>$error</li>"; } ?></ul>
<input name="field_name" type="text" ... />
看,这是一个鸡蛋一样简单!
只要把同样的动作在不同的顺序:
如果你不能没有一个成功的消息(在我看来相当无用的东西),你可以使用get参数(少首选)或会话(最佳)
哎呀它显示!这是一个旧的。
我还会注意到,使用模式和HTML5是避免使用无效数据提交表单的一个很好的做法。
您使用什么技术来处理表单? – skyfoot 2010-06-04 15:03:41
我通常使用PHP。 – Psyche 2010-06-04 15:18:13
我已将PHP标记添加到问题中。您可能会以这种方式获得更具体的回复。 – 2010-06-04 18:07:33