我想在不刷新页面的情况下将数据从视图(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