У меня есть два файла .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, без необходимости иметь два файла.
Ваш 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>