PHP – действие формы, вызывающее себя, как отображать все на одной странице?

У меня есть два файла .php:

test1.php

<html> <head> <title>Sample</title> </head> <body> <form action="test2.php" method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit"> </form> </body> </html> 

test2.php

 <html> <head> <title>Sample Display Page</title> </head> <body> <?php $user_number = $_POST["userNumber"]; echo "You have chosen $user_number"; ?> </body> </html> 

Я хочу знать, как я могу получить все это для отображения на одной странице, то есть на test1.php, без необходимости иметь два файла.

Solutions Collecting From Web of "PHP – действие формы, вызывающее себя, как отображать все на одной странице?"

Ваш test1.php должен выглядеть так

 <html> <head> <title>Sample</title> </head> <body> <form action="test1.php" method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit"> </form> <?php if(isset($_POST["userNumber"])) { $user_number = $_POST["userNumber"]; echo "You have chosen $user_number"; } ?> </body> </html> 

Проверьте, существует ли $_POST["userNumber"] iset и эхо-форма, если это не так.

 <html> <head> <title>Sample</title> </head> <body> <?php if(isset($_POST["userNumber"]){ echo "You have chosen ".$_POST["userNumber"]; }else{ echo '<form action="test1.php" method="post">'; echo 'Please enter a number <input type="number" name="userNumber"><br>'; echo '<input type="submit">'; echo '</form>'; } ?> </body> </html> 

Вам просто нужно удалить раздел action = "test2.php" и объединить обе страницы в одну, как показано ниже:

 <html> <head> <title>Sample</title> </head> <body> <form method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit"> </form> <?php if(isset($_POST['userNumber'])){ $user_number = $_POST['userNumber']; echo "You have chosen $user_number"; } ?> </body> </html> 

Довольно просто:

  <html> <head> <title>Sample</title> </head> <body> <?php if(isset($_POST) && isset($_POST['userNumber'])) { $user_number = $_POST["userNumber"]; echo "You have chosen $user_number"; } ?> <form method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit"> </form> </body> </html> 

Просто используйте кнопку isset() для отправки, обратите внимание, что я добавил name="submit" вашей кнопке, так как она отсутствовала

 <html> <head> <title>Sample</title> </head> <body> <?php if(isset($_POST['submit']) { $user_number = $_POST["userNumber"]; echo "You have chosen $user_number"; } else { ?> <form action="test2.php" method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit" name="submit"> </form> <?php } ?> </body> </html> 
 <html> <head> <title>Sample</title> </head> <body> <?php if (isset($_POST['submitted'])) { $user_number = $_POST["userNumber"]; echo "You have chosen $user_number"; } else { ?> <form method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit" name="submitted"> </form> <?php } ?> </body> </html> 

установите переменные до формы в качестве заполнителей и проверьте на isset

 <?php $user_number = ''; if(isset($_POST["userNumber"])) { $user_number = $_POST["userNumber"]; } ?> <form action="test2.php" method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit" name="submit"> </form> <p>You have chosen: <?php echo $user_number ?></p> 

Этот тест полностью протестирован и позволяет вам пересмотреть значение после отправки. Вам все равно придется беспокоиться о атаках межсайтового скриптинга и т. Д., Но это выходит за рамки вопроса.

 <html> <head> <title>Sample</title> </head> <body> <?php $user_number = ''; if (isset($_POST['userNumber'])) { $user_number=$_POST['userNumber']; ?> <p>You have chosen <?php echo $user_number ?></p> <?php } ?> <form method="post"> Please enter a number <input type="number" name="userNumber" value="<?php echo $user_number ?>"><br> <input type="submit"> </form> </body> </html> 

Образец

 <form action="<?php $_PHP_SELF ?>" method="post"> Please enter a number <input type="number" name="userNumber"><br> <input type="submit"> </form> </body> </html>