PHP - 表单动作调用自身,如何在1页中显示所有内容?

时间:2014-03-05 20:56:47

标签: php html forms

我有两个.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上,而不必拥有两个文件。

9 个答案:

答案 0 :(得分:6)

检查是否$_POST["userNumber"] isset,如果不是,请回复表单。

<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>

答案 1 :(得分:4)

您的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>

答案 2 :(得分:2)

您只需删除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>

答案 3 :(得分:2)

实际上非常简单:

   <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>

答案 4 :(得分:2)

在表单之前将变量设置为占位符并检查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>

答案 5 :(得分:2)

只需使用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>

答案 6 :(得分:2)

<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>

答案 7 :(得分:1)

这个已经过全面测试,允许您在提交后修改值。您仍然需要担心跨站点脚本攻击等...但这超出了问题的范围。

<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>

答案 8 :(得分:0)

  

      样品

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