php form – отправить заявку на ту же страницу

У меня есть php-форма, которая находится на contact.html

Форма обрабатывается из processForm.php

Когда пользователь заполняет форму и нажимает на отправку, processForm.php отправляет электронное письмо и направляет пользователя to-processForm.php с сообщением на этой странице «Успех! Ваше сообщение отправлено».

Я не знаю много о php, но я знаю, что действие, которое вызывает это:

// Die with a success message die("<span class='success'>Success! Your message has been sent.</span>"); 

Мой вопрос: как я могу сохранить сообщение внутри формы div без перенаправления на страницу processForm.php?

Я могу опубликовать весь процессForm.php, если это необходимо, но он длинный.

благодаря

Чтобы оставаться на одной странице на странице, вы можете оставить действие пустым ( action="" ) в теге формы или вообще оставить его.

Для сообщения создайте переменную ( $message = "Success! You entered: ".$input;" ), а затем эхо-переменную в месте на странице, где вы хотите, чтобы сообщение появлялось с <?php echo $message; ?> .

Как это:

 <?php if(isset($_POST['SubmitButton'])){ //check if form was submitted $input = $_POST['inputText']; //get input text $message = "Success! You entered: ".$input; } ?> <html> <body> <form action="" method="post"> <?php echo $message; ?> <input type="text" name="inputText"/> <input type="submit" name="SubmitButton"/> </form> </body> </html> 

Это можно сделать двумя способами:

  1. Отправьте форму на ту же страницу. (Это можно сделать, установив действие формы на тот же URL-адрес), и в этом случае вам придется обрабатывать представленную форму с помощью PHP-скрипта.
 if(isset($_POST['submit'])) { // Enter the Code you want to execute after the form has been submitted // Dispaly Success or failure Message if any } else { // Display the Form and the Submit Button } 

2. Использование формы формы AJAX, которая немного сложнее, чем первый метод для новичка.

Лучший способ остаться на одной странице – опубликовать на той же странице.

 <form method="post" action="<?=$_SERVER['PHP_SELF'];?>"> 

Вы должны использовать код, похожий на этот:

 echo "<div id='divwithform'>"; if(isset($_POST['submit'])) // if form was submitted (if you came here with form data) { echo "Success"; } else // if form was not submitted (if you came here without form data) { echo "<form> ... </form>"; } echo "</div>"; 

Код, if это типично для многих страниц, однако это очень упрощено.

Обычно вы должны проверять некоторые данные в первом «if» (проверьте, не были ли поля формы пустыми и т. Д.).

Посетите сайт http://www.thenewboston.org или phpacademy.org . Есть очень хорошие PHP-видеоуроки, включая формы.

Вы можете использовать # действие в действии формы

  <?php if(isset($_POST['SubmitButton'])){ //check if form was submitted $input = $_POST['inputText']; //get input text $message = "Success! You entered: ".$input; } ?> <html> <body> <form action="#" method="post"> <?php echo $message; ?> <input type="text" name="inputText"/> <input type="submit" name="SubmitButton"/> </form> </body> </html> 

Попробуй … работал для меня

 <form action="submit.php" method="post"> <input type="text" name="input"> <input type="submit"> </form> 

—— submit.php ——

 <?php header("Location: ../index.php"); ?>