【问题标题】:Stop Symfony form from redirecting after submit提交后停止 Symfony 表单重定向
【发布时间】:2023-04-03 14:58:01
【问题描述】:

我有一个在弹出窗口中呈现的表单。当表单提交并且有效时,数据被保存并且我被重定向到表单的路由。我怎样才能停止这种重定向?我不想渲染另一个页面,我的目标是在有效提交后关闭弹出窗口。

public function addFeedbackAction(Request $request)
 {
   $view = View::create();

   $feedback = new Feedback();
   $feedbackService = $this->get('main.feedback.service');
   $form = $this->createForm(new FeedbackType(), null, ['action' => 'feedback']);
   $form->handleRequest($request);

   if ($form->isValid()) {
       $formData = $form->getData();
       $feedbackService->create($formData, $feedback);

       return null;
   }
   $view
     ->setData($form)
     ->setTemplateData($form)
     ->setTemplate('MainBundle:Modals:feedback.html.twig');

   return $view;

【问题讨论】:

  • 这个问题确实不清楚。这完全是 Symfony 的问题吗?通过 AJAX 异步发送表单,然后在有效的表单提交上关闭弹出窗口...
  • 请发布您的 JavaScript 代码。它应该使用 e.preventDefault();return false; 之类的东西,以便在不更改当前页面的情况下通过 AJAX 提交帖子。

标签: javascript php forms symfony


【解决方案1】:

您可以使用 Javascript 捕获提交事件。

您可以在此处找到使用 JQuery 的示例: https://api.jquery.com/submit/

【讨论】:

    【解决方案2】:

    使用 AJAX 发送数据

    $.ajax({
            type: "POST",
            url: "yourControllerHere",
            data: form.serialize(),
            beforeSend: function() {
                //TODO: Loading
            },
            error: function( xhr){
    
            },
            success: function( data ){          
    
             }
        });
    

    然后你就可以处理你要成功的事情了:函数(数据)

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 2011-05-01
      • 2018-02-28
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2013-04-13
      相关资源
      最近更新 更多