Symfony Перенаправляет после поворотной отправки формы

MaxR

Новичок
Когда первый раз отправляю данные с формы всё проходит нормально, когда делаю это второй раз меня перенаправляет на контроллер которые обрабатывает это

Есть метод который принимает данные с формы и валидирует их

PHP:
public function addCommentAction(Request $request)
    {
        $post = new Post();
        $form = $this->createForm(new PostType(), $post);
        $post->setCreated(new \DateTime('now'));
        if ($request->getMethod() == 'POST') {
            $form->submit($request);
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($post);
                $em->flush();
                $this->get('session')->getFlashBag()->add('success', 'Comment has been sent on moderation. Wait 1 minute before send another comment.');
            }
        }
        return $this->render('GuestbookBundle:Post:postForm.html.twig', array(
            'form' => $form->createView(),
        ));
    }

Jquey который отправляет все данные на сервер

Код:
$('.container .form-comment .send-comment').on('click', function(e) {

        var $from = $(this).closest('form');
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: $from.attr('action'),
            data: $from.serialize(),
            success: function(data) {
                $('.form-comment').empty().append(data);
            }
        })
    });
мой роут

Код:
add:
    path:    /add
    defaults: { _controller: GuestbookBundle:Post:addComment }
    requirements:
        _method:  POST
После того как отправил данные с формы на сервер, хочу ещё раз это сделать, но меня перенаправляет на mysite.com/add

Как это побороть? И почему моя форма после удачной отправки не очищается?

Спасибо
 

Sender

Новичок
вместо:
Код:
$('.container .form-comment .send-comment').on('click', function(e) {
var $from = $(this).closest('form');
напиши

Код:
$('.container .form-comment .send-comment').on('click', function(e) {
alert('a');
var $from = $(this).closest('form');
вангую что у тебя будет только один алерт. Отсюда и копай.
 

keltanas

marty cats
Потому что надо ловить не $('.send-comment').click(), а $('form').submit(), и уже у него делать preventDefaults()
 
Сверху