Symfony4 symfony 4:表单提交后如何处理返回箭头

Symfony4 symfony 4:表单提交后如何处理返回箭头,symfony4,Symfony4,我有一个表格,它是用随机算法(测验)生成的。提交后,呈现结果页:问题是如果用户单击后退箭头,将显示具有相同问题的表单,并且可以再次提交!!我试图设置一个会话变量并使用twig函数{如果定义了app.sesseion->get('myVaryable')}然后不显示提交按钮等。。。但是,即使变量被删除在我的控制器,枝条仍然认为它定义…???您有其他简单的解决方案吗?单击浏览器中的“上一步”按钮通常会导致从缓存中重新加载页面(与服务器无交互),因此除非用户刷新页面(向服务器重新发送请求),否则您无法

我有一个表格,它是用随机算法(测验)生成的。提交后,呈现结果页:问题是如果用户单击后退箭头,将显示具有相同问题的表单,并且可以再次提交!!我试图设置一个会话变量并使用twig函数{如果定义了app.sesseion->get('myVaryable')}然后不显示提交按钮等。。。但是,即使变量被删除在我的控制器,枝条仍然认为它定义…???您有其他简单的解决方案吗?

单击浏览器中的“上一步”按钮通常会导致从缓存中重新加载页面(与服务器无交互),因此除非用户刷新页面(向服务器重新发送请求),否则您无法用twig(后端代码)控制此操作

您需要一个如下所示的javascript(前端代码)解决方案来检查导航类型

if (window.performance && window.performance.navigation.type == window.performance.navigation.TYPE_BACK_FORWARD) {

    // Disable the form
    var inputs = document.getElementsByTagName("INPUT");
    for (var i = 0; i < inputs.length; i++) {
        inputs[i].disabled = true;
        if (inputs[i].type === 'submit') {
            inputs[i].remove();   
        }
    }

}
if(window.performance&&window.performance.navigation.type==window.performance.navigation.type\u BACK\u FORWARD){
//禁用窗体
var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i
我建议您也在处理表单的控制器中查找并适当地处理重复提交,因为任何熟练的用户仍然可以提交表单

参考资料: