Php form - отправить заявку на ту же страницу
У меня есть php-форма, которая находится на contact.html
Форма обрабатывается из processForm.php
Когда пользователь заполняет форму и нажимает кнопку "Отправить",
processForm.php отправляет электронное письмо и направляет пользователя - processForm.php
с сообщением на этой странице "Успех! Ваше сообщение отправлено".
Я не знаю много о php, но я знаю, что действие, которое вызывает это:
// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");
Мой вопрос: как я могу сохранить сообщение внутри формы div без перенаправления на
Страница processForm.php?
Я могу опубликовать весь процессForm.php, если это необходимо, но он длинный.
Спасибо
Ответы
Ответ 1
Чтобы остаться на той же странице при отправке, вы можете оставить действие пустым (action=""
) в теге формы или вообще не указывать его.
Для сообщения создайте переменную ($message = "Success! You entered: ".$input;"
), а затем отобразите переменную в том месте на странице, где вы хотите, чтобы сообщение отображалось с <?php echo $message;?>
Как это:
<?php
$message = "";
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>
Ответ 2
Лучший способ остаться на одной странице - опубликовать на той же странице.
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
Ответ 3
Это можно сделать двумя способами:
-
Отправьте форму на ту же страницу: обработайте представленную форму с помощью PHP-скрипта. (Это можно сделать, установив форму action
на текущий URL страницы.)
if(isset($_POST['submit'])) {
// Enter the code you want to execute after the form has been submitted
// Display Success or Failure message (if any)
} else {
// Display the Form and the Submit Button
}
2. Использование представления формы AJAX, которое для начинающих немного сложнее, чем метод # 1.
Ответ 4
Вы можете использовать # действие в действии формы
<?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>
Ответ 5
Попробуйте это... работал у меня
<form action="submit.php" method="post">
<input type="text" name="input">
<input type="submit">
</form>
------ submit.php ------
<?php header("Location: ../index.php"); ?>
Ответ 6
Друг. Используйте этот способ. Не будет "неопределенного сообщения переменной", и он будет работать нормально.
<?php
if(isset($_POST['SubmitButton'])){
$price = $_POST["price"];
$qty = $_POST["qty"];
$message = $price*$qty;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="#" method="post">
<input type="number" name="price"> <br>
<input type="number" name="qty"><br>
<input type="submit" name="SubmitButton">
</form>
<?php echo "The Answer is" .$message; ?>
</body>
</html>
Ответ 7
Вы должны использовать код, похожий на этот:
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" (проверьте, не были ли поля формы пустыми и т.д.).
Пожалуйста, посетите www.thenewboston.org или phpacademy.org, Есть очень хорошие PHP-видеоуроки, включая формы.
Ответ 8
Вы можете увидеть следующий пример для действия формы на той же странице
<form action="" method="post">
<table border="1px">
<tr><td>Name: <input type="text" name="user_name" ></td></tr>
<tr><td align="right"> <input type="submit" value="submit" name="btn">
</td></tr>
</table>
</form>
<?php
if(isset($_POST['btn'])){
$name=$_POST['user_name'];
echo 'Welcome '. $name;
}
?>
Ответ 9
Я хочу, чтобы страница оставалась после отправки при возникновении ошибок... Поэтому я хочу, чтобы страница была перезагружена:
($_SERVER["PHP_SELF"])
Пока я включаю сценарий из отдельного файла, например,
include_once "test.php";
Я также где-то читал, что
if(isset($_POST['submit']))
Является ли новичок старым способом публикации формы, и
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Должен быть использован (не мои слова, где-то читал)