2016-03-02 4 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 и отправить ее на мою ветку без обновления всей страницы?

Edit: извините, вот код моего контроллера (он просто вставить комментарий в моем дб)

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

не ясно, все, что конкретная проблема. Мы не знаем, что делает ваш шаблон, или когда и как вы хотите, чтобы обновления происходили. Вопрос слишком широк – charlietfl

ответ

0

URL-адрес в запросе ajax определен неверно. Вы не можете просто указать название маршрута, вы должны генерировать URL по маршруту:

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