【问题标题】:HTML form with results on same page with isset [duplicate]HTML表单与isset在同一页面上的结果[重复]
【发布时间】:2014-04-03 18:11:40
【问题描述】:

我希望将查询结果发布在输入数据的同一 HTML 页面上。我相信这可以通过 isset() 命令完成,但我并不真正理解它的作用以及告诉我的页面转到新的 php url 以提供我的数据表的原因。

<html>
<body>
<form action="results.php" method="post">
<table border="0">
<td align="center"><head>Orders</head>
</tr>
<tr>
<td>Enter order number:</td>
<td align="center"><input type="text" name="enter" size="3" maxlength="3"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>

这是我当前的代码。有没有

<form action="results.php" method="post">

行告诉代码发布到新页面?有没有

if(isset($_POST)) 

在我的 html 文件或我的 results.php 文件中的代码中的某个位置?

【问题讨论】:

    标签: php html


    【解决方案1】:

    如果您的表单在 index.php 页面上,那么首先要做的是将 action="results.php" 更改为 action="index.php",这样您就不会被重定向到 result.php 页面。你可以这样做:

    <html>
    <body>
    <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            echo "Order number - " . $_POST['enter'];
        }
    ?>
    <form action="index.php" method="post">
    <table border="0">
    <td align="center"><head>Orders</head>
    </tr>
    <tr>
    <td>Enter order number:</td>
    <td align="center"><input type="text" name="enter" size="3" maxlength="3"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" value="Submit"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    

    如果您还想用输入的值填写表单字段,则可以这样做:

    <html>
    <body>
    <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            echo "Order number - " . $_POST['enter'];
        }
    ?>
    <form action="index.php" method="post">
    <table border="0">
    <td align="center"><head>Orders</head>
    </tr>
    <tr>
    <td>Enter order number:</td>
    <td align="center"><input type="text" name="enter" size="3" maxlength="3" value="<?php echo isset($_POST['enter'])?$_POST['enter']:'';?>"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" value="Submit"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      if(isset($_POST['enter']))
      

      如果您想在“输入”字段没有空白值时执行输出,那么您可以使用:

      if(isset($_POST['enter']) && $_POST['enter']!="")
      

      还可以像这样将表单操作值保持在同一页面:

      <form action="" method="post">
      

      <form action="<?php print($_SERVER['PHP_SELF']); ?>" method="post">
      

      【讨论】:

      • isset 代码去哪了?
      • 标签之间的页面顶部
      【解决方案3】:

      如果你想让同一个文件显示结果,

      1. 你必须将当前文件的.html重命名为.php
      2. 使用&lt;form method="post" action="&lt;?php echo $PHP_SELF;?&gt;"&gt; 而不是&lt;form action="results.php" method="post"&gt;
      3. 现在您在同一个文件的某处添加if(isset($_POST))

      您可以像往常一样将 html 代码添加到 .php 文件中,但不能将 php 代码添加到 .html 文件中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        相关资源
        最近更新 更多