Отправка формы с ajax и перезагрузка местоположения на текущую вкладку - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть веб-страница с несколькими вкладками, некоторые с формами. При успешной отправке любой формы я перезагружаю страницу, но она продолжает переходить на первую вкладку по умолчанию. Я пытаюсь установить переменную хранилища, чтобы облегчить переключение, если она загружается в первый раз (откройте вкладку по умолчанию) или загружается с помощью отправки формы (передайте идентификатор этой вкладки как переменную и загрузите ее при перезагрузке)

Как я могу успешно перезагрузить указанную c вкладку?

Ниже приведена функция отправки формы с ajax Я звоню

    //submit all forms on page
    const submitForm = (formID, targetTab) => {
        let theForm = document.getElementById(formID);

        //function will determine whichform is being passed and send data to PHP page
        //on reload trying to detect current tab and load to that location
        $.ajax({
            type: 'POST',
            url: $(theForm).attr("action"),
            data: $(theForm).serialize(),
            success: function (response) {
                location.reload()
                initFunction(targetTab)
            }
        });
    }

Это функция, которая обрабатывает вкладку чтобы перезагрузить, я называю это изначально при загрузке страницы, вот в чем проблема?

   const initFunction = (tab) => {
        let reloading = sessionStorage.getItem("reloading");
        if (!reloading) {
            document.getElementById(tab).click();
            sessionStorage.setItem("reloading", 'true');
        } else {
            document.getElementById(tab).click();
        }
    };

    //clicks on default first tab
    window.onload = initFunction('defaultOpen');

Вот пример моих кнопок вкладки навигации и одной из кнопок отправки формы

//nav
    <li class="nav-item">
        <a class="nav-link bg-primary tabLink text-white" href="#" id="defaultOpen" 
         onclick="changeTab(event, 'companytab')">
        <i class="fa fa-building"></i>&nbsp;Company</a>
     </li>

   <li class="nav-item ">
      <a class="nav-link bg-primary tabLink text-white" href="#"
          onclick="changeTab(event, 'contacttab')" id="contacttabbtn">
          <i class="fa fa-user"></i>&nbsp;Contacts</a>
  </li>

//button 
   <button onclick="submitForm('updateProspect', 'defaultOpen')"
              id="saveBtn"class="float-right d-none btn btn-sm btn-success"><i class="fa fa-save"> 
              </i>&nbsp;Save
   </button>

Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Возможно, попробуйте передать идентификатор вкладки в PHP в качестве параметра и вернуть его из скрипта. Затем вы можете получить его в ответ (успех: {}) в форме ajax. И после этого вы можете манипулировать вкладками так, как хотите, используя возвращенный идентификатор из скрипта PHP.

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