Задать вопрос

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

Проблема в том, что на странице есть checbox и все отмеченные значения сохраняются в переменную, эту переменную нужно использовать в другом файле. Страниц с checbox у меня 2 и нужно чтобы с первой я переходил на 2, но при этом, данные отправлялись на отдельную страницу.
  • Вопрос задан
  • 471 просмотр
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@php_raper
Рассмотрите 2 варианта

1. Выполняйте редирект со страницы на которую вы отправляете запрос(action) через header(Location: $uri)
2. Используйте асинхронный запрос к файлу, который обрабатывает форму на JS, например AJAX
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега HTML
Thinking about a11y
Если я правильно понял, у вас форма разбита на две страницы.

Простейший способ:

<form action="<?php echo $_POST['action'] ? $_POST['action'] : '' ?>" method="post">


  <section <?php echo $_POST['action'] ? 'style="display:none"' : '' ?>>
    <!-- Тут все поля первой страницы формы -->
    <input type="hidden" name="action" value="handler.php"> <!-- Открываем финальную -->
  </section>


  <section <?php echo $_POST['action'] ? '' : 'style="display:none"' ?>>
    <!-- Тут все поля второй страницы формы -->
  </section>


  <input type="submit">

  
</form>


Ваша форма всегда будет хранить в себе все поля, но в зависимости от обработчика будет показывать ту или иную часть полей. Ну и в поля нужно подставлять значения из предыдущего шага, если они есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽