HTML表单与isset在同一页面上的结果[重复]

Posted

技术标签:

【中文标题】HTML表单与isset在同一页面上的结果[重复]【英文标题】:HTML form with results on same page with isset [duplicate] 【发布时间】: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 文件中的代码中的某个位置?

【问题讨论】:

【参考方案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】:

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

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

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

【讨论】:

以上是关于HTML表单与isset在同一页面上的结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章

同一页面上的联系表单错误消息

JS:提交表单并在同一页面上呈现结果

如何在 django 的同一页面上返回结果?

用两个提交按钮区分 HTML 表单上的提交按钮 [重复]

如何将 php 变量传递给同一页面中的另一个表单?

如何验证表单数据,然后通过 AJAX 发送,然后在同一页面上显示提交的结果