Перенаправить на другую вкладку после вставки данных начальной загрузки 3.3 - PullRequest
0 голосов
/ 11 июня 2018

у меня multipills.php и personal.php;multipills.php с 4 вкладками

<ul class="nav nav-tabs">
    <li> <a href="#personal" data-toggle="tab"> personal </a></li>
    <li> <a href="#reservation" data-toggle="tab">reservation </a></li>
    <li> <a href="#contact" data-toggle="tab"> contact  </a></li>            
    <li> <a href="#family" data-toggle="tab">family </a></li>
</ul>

<div class="tab-pane active"  name="personal" id="personal">
 <form method="POST" action="personal.php">
<button> SUBMIT </button>
</form>
<div class="tab-pane"  name="reservation" id="reservation">
<form method="POST" action="reservation.php">
<button> SUBMIT </button>
</form>
<div class="tab-pane"  name="contact" id="contact">
<div class="tab-pane "  name="family" id="family">

Каждая вкладка содержит форму, когда я отправляю форму PERSONAL TAB с помощью personal.php, она должна перенаправить меня на multipills.php#reservation.

На обеих страницах нет ни javascript, ни jquery.Если требуется, где я должен поставить сценарий?windows.location.href или windows.locatin.hash не работает после вставки данных.Заранее спасибо.

1 Ответ

0 голосов
/ 11 июня 2018

Есть два способа сделать это.

1) Активировать вкладку на стороне сервера

Вам нужен способ сообщить серверу, какая панель вам нужна.активный.Вероятно, со скрытым вводом в форме в файле PHP каждой панели.

Например, personal.php может выглядеть примерно так:

<form action="multipills.php" method="post">
    <!-- stuff -->
    <input type="hidden" name="pane" value="personal">
</form>

Тогда файл multipills.php должен иметь логику для определения

  1. На какой панели в данный момент находится пользователь?
  2. Какую следующую панель мы должны показать?

Как только она узнает, какую панель отображать, вы можете переключать класс active на каждой tab-pane для активации соответствующей панели.

<div class="tab-pane<?= $currentPane == "personal" ? " active" : ""; ?>" name="reservation" id="reservation">
<!-- Repeat for other tabs. -->

2) Активировать вкладку на стороне клиента

Вы можете сделать что-то похожее с JavaScript.

personal.php должен выглядеть примерно так:

<form action="multipills.php#reservation" method="post">
    <!-- stuff -->
</form>

По умолчанию ни одна из панелей не будет активной.

Затем вы добавите скрипт на страницу где-нибудь после Ваши вкладки определены в разметке.

<script>
    document.getElementById(window.location.hash).classList.add('active');
</script>

Ни одно из решений не является ни полным, ни (обязательно) идеальным, но, надеюсь, они помогут вам начать правильный путь.

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