我有一个页面,用户可以在其中编写评论并通过简单的表单发布。 我尝试使用twig使用ajax,但没有成功。 我可以毫无问题地将ajax请求发送到我的控制器,并将注释保存在我的数据库中。 我的问题是重新加载我的树枝模板的一部分而不刷新整个页面。
我的控制者回来了:
return $app['twig']->render('@views_suivi/suivi_affaire.html.twig', array('cache' => false,
'auto_reload' => true,
'affaire' => $affaire,
'comments' => $comments
));
$ comments指出了文章的所有评论。当我发送ajax请求时,我的表注释会更新。有没有办法更新变量$ comments并重新发送到我的树枝而不刷新整个页面?
编辑:对不起,这是我的控制器的代码(它只是在我的数据库中插入注释)
function addCommentAjax(Application $app, Request $request)
{
$cmt = new CommentaireQueries($app);
$postParams = $app["request"]->request->all();
//var_dump($postParams);
if(isset($postParams['files'])) unset($postParams['files']);
return !empty($postParams) ? $cmt->insertCommentAffaire($app,$postParams) : false;
}
Ajax:' AjoutCommentaire'是我的控制器addCommentAjax
的路由$(document).ready(function() {
$('form').on('submit',function(e){
e.preventDefault();
$.ajax({
type : "POST",
url : "AjoutCommentaire",
data: $(this).serialize(),
success : function() {
alert('success');
}
});
});
});
我的表格:
<form role="form" method="POST">
<div class="form-group">
<textarea class="summernote" id="contents" rows="10" name="comment"></textarea>
</div>
<input type="hidden" name="phase" value="1" />
<input type="hidden" name="id_affaire" value="{{ affaire.id }}" />
<center><button type="submit" class="btn btn-link btn-block">Envoyer</button></center>
</form>
基本上,我只是想在不刷新页面的情况下添加评论。
谢谢!
答案 0 :(得分:0)
ajax请求中的url未正确定义。您不能只指定路由名称,您应该通过路由生成URL:
$.ajax({
type: "POST",
url: "path('AjoutCommentaire', {})",
...