Как перенаправить на позицию на странице после рендеринга формы с ошибками - PullRequest
0 голосов
/ 03 января 2019

В symfony / twig у меня есть страница контактов, в которой указываются имя и адрес электронной почты, которые можно отправить.Вход подтвержден.Поля формы находятся внизу страницы.Если форма отправлена, я хочу перенаправить ее в нижнюю часть страницы, где находится форма и где отображается сообщение об ошибке или об успехе.В случае успеха мне удалось сделать это в контроллере с помощью:

if ($form->isValid()) {
            .... code to send mail
            return $this->redirect($request->getUri()."#form");
        }

Если форма недействительна, страница отображается следующим образом:

        else {
            $request->getSession()->getFlashBag()->add('error', 'Message not send!');
            return $this->render('default/index.html.twig', array(
                'form' => $form->createView(),
            ));
        }

и если форма не являетсядействительно, он возвращается в начало страницы.Я хочу вернуться в конец страницы (URL / # форма), где находится часть формы, и ошибки видны, поэтому зритель видит, что сообщение не было отправлено из-за ошибок.Можно ли добавить привязку при рендеринге формы?(А не использовать javascript).

1 Ответ

0 голосов
/ 05 января 2019

если вы используете redirectToUrl, чтобы потерять данные формы, то вы можете сделать это с помощью простого кода jquery:

{% if not form.vars.valid %}
    <script>
        $(document).ready(function () {
        $('html,body').animate({
            scrollTop: $('#form').offset().top
        }, 1000);
        });
    </script>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...