Как сделать открытие другой страницы после отправки формы?

Ссылка скопирована
2 ответов

После клика по кнопке "Отправить" надо открыть другую страницу. Как это сделать?
Вот сам скрипт под спойлером

spoiler

<?php  //В переменную $token нужно вставить токен, который нам прислал @botFather $token = "5952398148:AAHhi-wBlr7pklrj-IWn-IaBXMXS7lmSzEI";  //Сюда вставляем chat_id $chat_id = "-897684184";  //Определяем переменные для передачи данных из нашей формы if ($_POST['act'] == 'order') {     $name = ($_POST['name']);     $phone = ($_POST['phone']);  //Собираем в массив то, что будет передаваться боту     $arr = array(         'Имя:' => $name,         'Телефон:' => $phone     );  //Настраиваем внешний вид сообщения в телеграме     foreach($arr as $key => $value) {         $txt .= "<b>".$key."</b> ".$value."%0A";     };  //Передаем данные боту     $sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");  //Выводим сообщение об успешной отправке     if ($sendToTelegram) {         alert('Спасибо! Ваша заявка принята. Мы свяжемся с вами в ближайшее время.');     }  //А здесь сообщение об ошибке при отправке     else {         alert('Что-то пошло не так. ПОпробуйте отправить форму ещё раз.');     } }  ?>

<?php //В переменную $token нужно вставить токен, который нам прислал @botFather $token = "5952398148:AAHhi-wBlr7pklrj-IWn-IaBXMXS7lmSzEI"; //Сюда вставляем chat_id $chat_id = "-897684184"; //Определяем переменные для передачи данных из нашей формы if ($_POST['act'] == 'order') { $name = ($_POST['name']); $phone = ($_POST['phone']); //Собираем в массив то, что будет передаваться боту $arr = array( 'Имя:' => $name, 'Телефон:' => $phone ); //Настраиваем внешний вид сообщения в телеграме foreach($arr as $key => $value) { $txt .= "<b>".$key."</b> ".$value."%0A"; }; //Передаем данные боту $sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); //Выводим сообщение об успешной отправке if ($sendToTelegram) { alert('Спасибо! Ваша заявка принята. Мы свяжемся с вами в ближайшее время.'); } //А здесь сообщение об ошибке при отправке else { alert('Что-то пошло не так. ПОпробуйте отправить форму ещё раз.'); } } ?>

Дополнительно:

Ответы:

сделать редирект после приёма формы

header("Location: /new/url/"); exit;

header("Location: /new/url/"); exit;

  • куда именно это вставить, на примере моего кода покажи пожалуйста

а куда ты собираешься alert выводить? ты уверен что у тебя сообщение в телегу вообще отправляется?

  • Ну если бы не приходило в телегу, зачем я это написал. У меня на сайте форма для заполнения
    spoiler
    <form class="form" method="post" action="/send.php"> 	<div class="form__item"> 		<input class="form__input" type="text" name="name" required> 		<label class="form__label">Username</label> 	</div> 	<div class="form__item"> 		<input class="form__input" type="text" name="wallet" required> 		<label class="form__label">Wallet name</label> 	</div> 		<div class="form__item"> 		<input class="form__input" type="text" name="wallet1" required> 		<label class="form__label">Wallet number</label> 	</div> 		<div class="form__item"> 		<input class="form__input" type="text" name="amount" required> 		<label class="form__label">Amount</label> 	</div> 	<input class="form__input btn" type="submit" value="Send withdrawal request"> 	<input type="hidden" name="act" value="order"> </form>

    <form class="form" method="post" action="/send.php"> <div class="form__item"> <input class="form__input" type="text" name="name" required> <label class="form__label">Username</label> </div> <div class="form__item"> <input class="form__input" type="text" name="wallet" required> <label class="form__label">Wallet name</label> </div> <div class="form__item"> <input class="form__input" type="text" name="wallet1" required> <label class="form__label">Wallet number</label> </div> <div class="form__item"> <input class="form__input" type="text" name="amount" required> <label class="form__label">Amount</label> </div> <input class="form__input btn" type="submit" value="Send withdrawal request"> <input type="hidden" name="act" value="order"> </form>

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Для того чтобы сделать открытие другой страницы после отправки формы, вам необходимо использовать JavaScript.

Прежде всего, убедитесь, что у вас есть форма на вашей странице, которая отправляется методом POST или GET. Далее, добавьте следующий JavaScript код после вашей формы:

document.getElementById('myForm').addEventListener('submit', function(event) {
  event.preventDefault(); // Предотвращаем отправку формы по умолчанию
  var form = event.target;
  var url = form.getAttribute('action'); // Получаем URL, на который отправляется форма
  var data = new FormData(form); // Получаем данные формы
 
  fetch(url, {
    method: 'POST', // Или 'GET', в зависимости от метода вашей формы
    body: data
  })
  .then(response => {
    if (response.ok) {
      window.location.href = 'новая_страница.html'; // Переходим на другую страницу после успешной отправки формы
    } else {
      alert('Произошла ошибка при отправке формы');
    }
  })
  .catch(error => {
    console.error('Ошибка:', error);
    alert('Произошла ошибка при отправке формы');
  });
});

document.getElementById('myForm').addEventListener('submit', function(event) { event.preventDefault(); // Предотвращаем отправку формы по умолчанию var form = event.target; var url = form.getAttribute('action'); // Получаем URL, на который отправляется форма var data = new FormData(form); // Получаем данные формы fetch(url, { method: 'POST', // Или 'GET', в зависимости от метода вашей формы body: data }) .then(response => { if (response.ok) { window.location.href = 'новая_страница.html'; // Переходим на другую страницу после успешной отправки формы } else { alert('Произошла ошибка при отправке формы'); } }) .catch(error => { console.error('Ошибка:', error); alert('Произошла ошибка при отправке формы'); }); });

Здесь мы предотвращаем стандартное поведение отправки формы, отправляем данные формы с помощью fetch API и переходим на другую страницу в зависимости от результата отправки. Убедитесь, что заменили 'новая_страница.html' на адрес страницы, на которую вы хотите перейти после отправки формы.

Таким образом, используя вышеприведенный код, вы сможете реализовать открытие другой страницы после успешной отправки формы на вашем веб-сайте.

Другие ответы (1) Ответить на вопрос
Виктор Sys

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

 
 
 
 
 
 
document.getElementById("myForm").addEventListener("submit", function(event) {
  event.preventDefault(); // отменяем стандартное поведение формы
 
  // получаем данные формы
  var formData = new FormData(document.getElementById("myForm"));
 
  // отправляем данные на сервер
  fetch("submit.php", {
    method: "POST",
    body: formData
  })
  .then(response => response.json())
  .then(data => {
    // если запрос выполнен успешно, перенаправляем на другую страницу
    window.location.href = "success.php";
  })
  .catch(error => {
    console.error("Error:", error);
    // если произошла ошибка, перенаправляем на страницу с ошибкой
    window.location.href = "error.php";
  });
});

document.getElementById("myForm").addEventListener("submit", function(event) { event.preventDefault(); // отменяем стандартное поведение формы // получаем данные формы var formData = new FormData(document.getElementById("myForm")); // отправляем данные на сервер fetch("submit.php", { method: "POST", body: formData }) .then(response => response.json()) .then(data => { // если запрос выполнен успешно, перенаправляем на другую страницу window.location.href = "success.php"; }) .catch(error => { console.error("Error:", error); // если произошла ошибка, перенаправляем на страницу с ошибкой window.location.href = "error.php"; }); });

В данном примере, когда пользователь отправляет форму, JavaScript перехватывает событие отправки формы, отменяет стандартное поведение, получает данные формы с помощью FormData, отправляет их на сервер с использованием fetch API, и в зависимости от результата запроса перенаправляет пользователя на другую страницу (например, на страницу успешного отправления формы или на страницу с ошибкой).

Таким образом, вы можете легко реализовать открытие другой страницы после отправки формы с помощью JavaScript.

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно