在 Symfony 3.4 中使用 Ajax 将数据从 Twig 发送到控制器



我想在不刷新页面的情况下将数据从视图(Twig(发送到控制器,所以我使用了ajax,以便将数据传递给特定的控制器操作。这是我在twig文件中的ajax代码:

   <script>     
        var data = {request : $('#content').val()};
        $.ajax({
          type: "POST",
          url: "{{ path('AjoutAjax') }}",
          data: data,
          success: function (data, dataType) {
            alert(data);
          },
          error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('Error : ' + errorThrown);
          }
        });
</script> 

这是我的树枝文件:

<div class="column text-lg">Subtotal: <span class="text-medium" id="content">

这是我的控制器操作:


    public function AjoutAjaxAction(Request $request)
    {
        $data = $request->request->get('request');
        echo $data;
        $em = $this->getDoctrine()->getManager();
        $reservation = $em->getRepository('techeventBundle:Panier')->find(11);
        $reservation->setTotal($data);
        $em->flush();
        return $this->render('@reservation/Default/afficherPanier.html.twig');
    }

这是路由文件

affichage:
    path:     /afficherPanier/{iduser}
    defaults: { _controller: reservationBundle:Default:afficherPanier }
AjoutAjax:
    path:     /ajoutAjax
    defaults: { _controller: reservationBundle:Default:AjoutAjax }

问题是:

1/它没有将数据发送到控制器操作,因为当我尝试使用路径"AjoutAjax"时,它没有显示回声"$data"。

2/我应该用"affichage"或"AjoutAjax"测试任何路径才能知道它是否有效?'

我不是前端开发人员,但我认为您应该在 span 元素上使用 .html().text() 而不是.val()

https://api.jquery.com/text/#text

最新更新