Yesod中确认对话框的最简单方法是什么?在某些情况下,当表格发布时,我想在执行操作之前先要求确认。我想通过向用户发送一个单独的确认页面,然后处理发布的数据(如果按下“是”按钮)来实现这一点。Yesod中的确认对话框
我认为这应该是可能的,使用像setUltDestReferer这样的函数。问题是,在Yesod中最简单/最典型的方法是什么?理想情况下,它应该归结为处理程序中的单个函数调用,如requireAuth所做的。
Yesod中确认对话框的最简单方法是什么?在某些情况下,当表格发布时,我想在执行操作之前先要求确认。我想通过向用户发送一个单独的确认页面,然后处理发布的数据(如果按下“是”按钮)来实现这一点。Yesod中的确认对话框
我认为这应该是可能的,使用像setUltDestReferer这样的函数。问题是,在Yesod中最简单/最典型的方法是什么?理想情况下,它应该归结为处理程序中的单个函数调用,如requireAuth所做的。
如果我理解这个权利,你想要的东西,这将
这立即引发了原始表单数据应该如何携带的问题。有解决这个问题的方法,例如通过将其存储在会话中或将其包含在“是”链接中编码的URL中。
后一种方法有效,但可能有点麻烦。前者可能会导致用户点击后退按钮时出现问题,打开新选项卡中的链接等等。这来自HTTP的无状态设计。
相反,它可能是更清洁,以创建一个新的AJAX的处理程序,并添加一些JavaScript代码
我建议你去@哈马尔的做法,我觉得这是最好的。如果出于某种原因,AJAX不是一种选择,您可以考虑在包含从第一页提交的表单数据的确认页上放置一个隐藏表单。这应该是相当平凡使用runRequestBody
。
那岂不是更好地做到这一点上有一些JavaScript客户端? – hammar
我想在服务器端而不是通过Javascript来做它的主要原因是我只想在某些情况下要求确认。为了在客户端执行逻辑将是可能的,但我必须从数据库中提取更多数据并将其发送到客户端。 – chrisdb