我想知道处理表单处理的最佳做法是什么?
就我而言,我做了类似的事情:
我的问题是我正在重复表单的HTML代码3次,我认为这不是一个好习惯(长文件,难以阅读)。
答案 0 :(得分:5)
您应该遵循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" ... />
答案 1 :(得分:2)
您的工作流程看起来很正确。我不明白为什么你需要重复表单的HTML代码。重构您的代码,以便成功消息显示在表单的顶部(如果存在),并且如果它们存在,则错误显示在输入框旁边。在(PHP?)文件的顶部,处理所有内容并设置将在下面的表单中显示的变量。
答案 2 :(得分:1)
您可以使用相同的表单代码,只显示表单上方的错误/成功消息。
答案 3 :(得分:1)
看,它就像鸡蛋一样简单! 只需按照不同的顺序执行相同的操作:
如果你不能没有成功的消息(我认为这是一件非常无用的事情)你可以使用get参数(不太喜欢)或会话(最佳)来显示它
糟糕!这是一个旧的。
答案 4 :(得分:0)
你可以将你的剧本分成两部分:
显示表单
获取表单数据,检查并返回错误或成功消息
答案 5 :(得分:0)
我还要注意,使用模式和HTML5是避免使用无效数据提交表单的一种很好的做法。
答案 6 :(得分:-1)
鉴于在每种情况下您都在显示表单,您是否可以默认显示相同的表单,然后添加错误消息等附加内容?
您还在使用其他什么技术?