У меня есть 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>
Это можно сделать двумя способами:
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"); ?>