оставьте материализованную CSS модальную форму открытой после отправки - PullRequest
0 голосов
/ 17 июня 2020

Я использую форму внутри материализованного модального окна, но когда я нажимаю кнопку отправки, модальное окно закрывается и перенаправляется, как я могу перезагрузить существующую форму с пустыми полями, не закрывая модальное окно после отправки?

        <div class="modal" id="docModal{{applications.id}}" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" style="height: 500px;">
            <div class="modal-dialog modal-full-height modal-right modal-notify modal-info" style="margin: 0;" role="document">
          ........

            {{ form_start(form) }}

                <div class="form_group">
                   <label for="{{form.nom.vars.id}}">Nom</label>
                         <input type="text" class="form_control" id="{{form.nom.vars.id}}" name="{{form.nom.vars.full_name}}" value="{{form.nom.vars.value}}" required>
                 {{form_errors(form.nom)}}
                {% do form.nom.setRendered %}
              </div>
                  <!-------BTN AJOUT---------->
                 <input  type="submit" class="btn btn-success" onclick="M.toast({html: 'Lien ajouté !', classes: 'rounded'});" value="Ajouter" style="transform: translate(32em);"
                                    id="carto_cartographiebundle_liendocapp_ajouter" name="carto_cartographiebundle_liendocapp[ajouter]">
                  {% do form.ajouter.setRendered %}
           {{form_end(form)}} 
      </div>
 </div>

Контроллер

      public function indexAction(Request $request)
       {

    $em = $this->getDoctrine()->getManager();
    $applications = $em->getRepository('CartoBundle:Application')->findAll();
    $lienDocApp = new LienDocApp();
    $form=$this->createForm(LienDocAppType::class, $lienDocApp);
    $form->handleRequest($request);
    if ($form->isSubmitted()&& $form->isValid()){
        $em = $this->getDoctrine()->getManager();
        $em->persist($lienDocApp);
        $em->flush();
        return $this->redirectToRoute('carto_accueil');
    }

    return $this->render('CartoBundle:Accueil:index.html.twig', array(
        'applications'=>$applications,
         'lienDocApp' => $lienDocApp,
        'form' => $form->createView(),
    ));
}

1 Ответ

1 голос
/ 18 июня 2020

Это можно сделать двумя способами.

  1. Как упоминал Фабиан выше, вы можете использовать основанную на ajax форму, отправляя в refre sh содержимое модального окна - это должно быть относительно легко.

  2. Вы можете перенаправить форму на ту же страницу и передать переменную обратно на страницу, которая сообщит ей о загрузке модального окна. Это может быть не идеально, потому что модальное окно открывается после загрузки страницы, но иногда это может быть лучше. Для этого вы можете посмотреть на этот вопрос: Как я могу открыть модальное окно материализации, когда окно готово?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...