表单提交后如何在同一个html页面上回显?

Posted

技术标签:

【中文标题】表单提交后如何在同一个html页面上回显?【英文标题】:How to echo on same html page after form submit? 【发布时间】:2013-01-01 09:25:30 【问题描述】:

当表单提交时,我的页面被重定向到 php 并显示回显。如何在不重定向到 PHP 页面的情况下显示回显?所以回显应该显示在html页面(html表单所在的地方)。

<form method="post" action="../form.php">
<input type="submit" name="1" value="YES" />
<input type="submit" name="1" value="NO" />
</form>

-

<?php 
$answer = $_POST['1'];  
if ($answer == "YES")           
    echo 'Good!!!';      

else 
    echo 'Try Again!';
 
?>

【问题讨论】:

是在同一个脚本(form.php)中处理它的表单和代码吗? form has submitted somewhere on the html page(maybe inside a div or input field)是什么意思 不完全确定我是否理解你的意思,但听起来你试图在没有页面刷新的情况下显示一些东西,你可以用 AJAX 来做 当他们点击其中一个提交按钮时,我想回显结果但不离开页面。回显消息如何显示在表单所在的html页面而不是PHP?我的意思是没有阿贾克斯。我的想法是将 PHP 中的值发送到 html 页面中的输入文本字段。这有意义吗? 【参考方案1】:

我猜你可以结合使用&lt;iframe&gt;javascript 来获得结果。

<form method="post" action="submit.php" target="myIframe" >
    <input type="submit" name="1" value="YES" />
    <input type="submit" name="1" value="NO" />
</form>

<iframe name="myIframe">
</iframe>

【讨论】:

【参考方案2】:

您不能在同一个页面上执行此操作 - 至少在没有异步客户端-服务器通信技术(如 AJAX)的情况下不能。否则,您可以使用以下内容:

<form action="<?php echo $_SERVER['PHP_SELF']; ? method=....>"

作为你的表单开始标签,然后把PHP处理代码放在文档的顶部,像这样:

<?php
  if(isset($_POST['form_field_name']))
       //process your data here
?>

HTML in case of Form filled in goes here

<?php
else
?>

HTML in case of Form not filled in goes here

<?php
  
?>

HTML in any case goes here

通过这种方式,您可以根据是否填写表单来更改页面布局。 $_SERVER['PHP_SELF'] 包含对当前请求页面的引用,因此即使它被重命名也总是设置为正确的页面。这可以节省您跟踪错误的时间。

【讨论】:

我赞成信息的深度。我强烈建议不要使用代码来两次绘制表单。相反,您总是显示表单并使用 if 子句在表单标签中添加“value =”属性。【参考方案3】:
<?php

if(isset($_POST['1']))
    echo ($_POST['1'] == 'YES') ? 'Good!!!' : 'Try Again!';


?>

<!-- your HTML goes here -->

您可以在同一页面上结合 HTML 和 PHP。

【讨论】:

-1 我看不出有什么不同,除了不会有 E_NOTICE 警告。 -1 没有适当的解释 @PeterSzymkowski 对我来说,这看起来像是 OP 所要求的。 它将HTML和PHP结合在同一个页面上,这是我从OP中了解到的。 @MarcusRecck 是的,但同样的代码有问题:](除了不会有 E_NOTICE 警告)【参考方案4】:

<html>
<body>
<form method="post" action="">
<input type="text" maxlength="30" name="nm">
<input type="email" maxlength="30"  name="em"><br>
<input type="checkbox" name="chkbox1" value="male">Male
<input type="checkbox" name="chkbox2" value="male">Male
<input type="checkbox" name="chkbox3" value="male">Male
<input type="checkbox" name="chkbox4" value="male">Male
<input type="checkbox" name="chkbox5" value="male">Male
<input type="Submit" name="submit">
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))

echo "Welcome :".$_POST['nm']."<br>";
echo "Your email Address is: ".$_POST['em']."<br>";

$count=0;
if(isset($_POST['chkbox1']))
$count++;
if(isset($_POST['chkbox2']))
$count++;
if(isset($_POST['chkbox3']))
$count++;
if(isset($_POST['chkbox4']))
$count++;
if(isset($_POST['chkbox5']))
$count++;
echo" Number of checkboxes ticked are:".$count;
?>

【讨论】:

再次阅读问题,@zefs 已经有了这个并想要其他行为。 虽然此代码可能会回答问题,但提供有关 why 和/或 如何 它回答问题的额外上下文将显着改善其长期价值。请edit你的答案添加一些解释。【参考方案5】:

您可以将操作设置为同一页面例如:

如果我正在处理一个名为 index.php 的文件

这将是我的形式:

<form action="index.php" method="post">
   <input type="text" name="Example" placeholder="Enter Text">

【讨论】:

以上是关于表单提交后如何在同一个html页面上回显?的主要内容,如果未能解决你的问题,请参考以下文章

html中提交表单后如何在同一页面上显示表格?

在goahead中如何实现在一个页面提交表单数据,在另一个页面获取表单提交过来的数据

js 提交的表单后如何在本页面接收返回值

在HTML中,建立一个提交表单页面,提交后可以直接在数据库看见。

jsp中怎样获得表单中radio的回显信息?

在HTML中,建立一个提交表单页面,提交后可以直接在数据库看见。