Подтвердить что ты не робот

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, если это необходимо, но он длинный.

Спасибо

4b9b3361

Ответ 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

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

  1. Отправьте форму на ту же страницу: обработайте представленную форму с помощью 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')

Должен быть использован (не мои слова, где-то читал)