我的控制器中带有 ajax 的 Symfony 调用函数[关闭]

Posted

技术标签:

【中文标题】我的控制器中带有 ajax 的 Symfony 调用函数[关闭]【英文标题】:Symfony call function in my controller with ajax [closed] 【发布时间】:2020-10-18 21:55:25 【问题描述】:

我想用 ajax 在我的控制器中调用一个函数

我真的是初学者,我真的不明白我需要做什么

/**
 * @Route("/Article/id/vote", name="article_vote")
 */
public function vote($idArticle, $vote, Request $request, ObjectManager $manager) 



 <script>
        $(document).on('click', '.ajax', function()
            that = $(this);
            $.ajax(
                url:' (path('don't know')) ',
                type: "POST",
                dataType: "json",
                async: true,
            );
            return false;
        );
    </script>

【问题讨论】:

请编辑您的问题并添加更多代码(函数注释)。 我这样做了,但我认为它有点没用,因为我想在没有路由的函数上转换它 -> 然后如何在树枝上调用它 为什么要删除路由? 因为我不想更改页面或重置此页面/它的功能就像我们在 *** 上对文章进行投票一样 您有 2 个选项:让模板保持原样,并在控制器中返回对文章详细信息页面的重定向。投票功能将投票并将用户发送回文章页面。投票动作可以放置一条闪光消息,您可以在文章页面上显示该消息。第二种选择是使用 ajax 调用操作。点击按钮并进行 ajax 调用,还有更多关于如何做到这一点的教程。 ***.com/questions/42221356/… 【参考方案1】:

最后我的函数的路径需要在 url :

我添加了一个成功和错误函数

% block javascripts % 
 <script>
$(document).on('click', '#ajax', function()
   that = $(this);
  $.ajax(
       url : ' path('post_like', 'id' : article.id) ',
       type : 'POST',
       dataType : 'html',
       success : function(code_html, statut) 
         code = JSON.parse(code_html);
     ,
       error : function(resultat, statut, erreur)
       
    );
    return false;
);

</script>
% endblock % 

我需要添加一个返回 json

/**
 * @Route("/article/id/like", name="post_like")
 */
public function vote(Article $article, Request $request, ObjectManager $manager, ArticleLikeRepository $likeRepo) : Response 
    return $this->json([
        'code' => 200,
        'likes' => $likeRepo->count(['article' => $article])], 200);

【讨论】:

你能分享更多细节吗?如果没有路由,这如何工作? 这只是一个错误。一开始我在想我需要调用一个函数而不用路由来调用ajax。

以上是关于我的控制器中带有 ajax 的 Symfony 调用函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 - KnpPaginator - AJAX/嵌入式控制器

用javascript(Ajax)更新Symfony

Symfony 5中带有like参数的搜索表单不返回结果

如何使用 Symfony 和 Jquery 发出 POST Ajax 请求

反应ajax axios没有到达symfony控制器并返回模板

Symfony CSRF 和 Ajax