Как передать значения с одного select в другой select

Есть два селекта на одной странице, надо передать выбранные значения у них на другую страницу в такие же селекты.

<div class="simple-filter_item button-group filters">
    <p class="rus">level</p>
    <?php
    $categories = get_terms('level', 'orderby=name&hide_empty=0');
    if($categories){
    echo '<select name="level" id="level1"><option value="card-item" selected>Любой</option>';
    foreach ($categories as $cat){
    echo "<option value='level-{$cat->term_id}'>{$cat->name}</option>";
    }
    echo '</select>';
    }?>
    </div>
    <div class="simple-filter_item">
    <p>direction</p>
    <?php
    $categories = get_terms('direction', 'orderby=name&hide_empty=0');
    if($categories){
    echo '<select name="direction" id="direction1"><option value="card-item" selected>Любой</option>';
    foreach ($categories as $cat){
    echo "<option value='direction-{$cat->term_id}'>{$cat->name}</option>";
    }
    echo '</select>';
    }?>
    </div>

Подскажите, пожалуйста, как это сделать нормально, перерыла куча сайтов и решения оттуда нормально не работаю =\ Заранее всем спасибо:3


Ответы (2 шт):

Автор решения: Aziz Umarov

У Вас проблема поскольку вы не совсем понимаете как работает веб.

  1. Браузер делает запрос на первую страницу.
  2. Ваш сервер (php) получив запрос на страницу начинает рендерить ответ.
  3. Браузер получив данные начинает отрисовывать и обрабатываеть страницу.
  4. Пользователь выбирает 2 значения из селектов. - тут остановимся. Откуда возмется вторая траница? Чтобы появилась вторая страница нужно чтоб ее отправил сервер. А чтобы отправил сервер нужно чтобы он получил запрос. Откуда возмется запрос? его отправит браузер на реакцию пользователя на странице.
  5. Так вот чтобы появилось что-то вам нужное на второй странице. Эту страницу нужно подготовить. В вашем случае можно
  • Отправить в запросе ваши выбранные значения. И во время обработки страницы выбрать значения этих селекторов
  • Не отправлять на сервер значения селекторов, а хранить и обрабатывать через localStorage
  • тут стоить заметить есть и sessionStorage и cookie
→ Ссылка
Автор решения: Fr3z0n

1)Можно использовать глобальный массив $_SESSION или $_COOKIE. Передать туда значения селектов и подставить на следующей странице. Таким образом проходят многостраничные тесты.

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

→ Ссылка