2016-03-02 96 views
2

我有一个页面,用户可以通过简单的表单发表评论并发表评论。 我试图,没有成功,用ajax使用树枝做到这一点。 我可以发送ajax请求到我的控制器没有问题,评论保存在我的数据库。 我的问题是重新加载我的树枝模板的一部分,而不刷新整个页面。重新加载数据,而无需使用Ajax和Twig刷新页面

我控制器的回报:

return $app['twig']->render('@views_suivi/suivi_affaire.html.twig', array('cache' => false, 
       'auto_reload' => true, 
       'affaire' => $affaire, 
       'comments' => $comments 
       )); 

$意见countains所有文章的评论。当我发送一个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; 
} 

阿贾克斯: '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

都不清楚具体是什么问题。我们不知道您的模板呈现什么,或者您何时或如何希望更新发生。问题太广泛了 – charlietfl

回答

0

ajax请求中的url未正确定义。你不能只指定路线名称,你应该途径产生网址:

$.ajax({ 
     type: "POST", 
     url: "path('AjoutCommentaire', {})", 
     ... 
相关问题