gpt4 book ai didi

python - web2py中如何允许多个表单提交?

转载 作者:行者123 更新时间:2023-12-01 04:03:25 25 4
gpt4 key购买 nike

值得庆幸的是,web2py 通过使用隐藏的 _formkey 值自动阻止多个表单提交。在大多数情况下,提交表单时,页面会再次加载,以便生成新的 key 。但是,由于我使用 web2py 的 ajax 函数提交表单,因此无需刷新页面即可获得结果,因此表单键保持不变,无法再提交。

我应该如何解决这种情况?

最佳答案

您可以考虑为表单创建一个单独的操作,并通过 Ajax 组件将整个表单加载到页面中:

def index():
form_component = LOAD('default', 'form.load', ajax=True)
return dict(form_component=form_component)

def form():
form = FORM(...).process()
return dict(form=form)

在index.html View 中,您可以通过{{=form_component}}包含该组件,在form.load View 中,您可以通过{包含表单本身{=form}} (注意,form.load View 不应扩展布局,因为它最终将通过 Ajax 插入到 index.html 页面中)。

现在整个表单将通过 Ajax 加载,并且将自动通过 Ajax 提交,并通过 Ajax 返回一个新表单(因此您根本不需要编写任何 Javascript 代码)。

或者,如果您想坚持当前的方法,可以让 Controller 返回整个表单以响应 Ajax 请求,并将 ajax() 函数的目标参数设置为包含表单的 div 的 id。在这种情况下,Ajax 请求完成后,整个表单将被新表单替换(新表单将具有新的 _formkey)。

关于python - web2py中如何允许多个表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com