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

zef*_*efs 3 html php forms submit echo

提交表单后,我的页面被重定向到 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>
Run Code Online (Sandbox Code Playgroud)

——

<?php 
$answer = $_POST['1'];  
if ($answer == "YES") {          
    echo 'Good!!!';      
}
else {
    echo 'Try Again!';
} 
?>
Run Code Online (Sandbox Code Playgroud)

Bog*_*dan 6

我想您可以使用<iframe>和 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>
Run Code Online (Sandbox Code Playgroud)


Max*_*ers 5

你不能在同一个页面上做到这一点——至少在没有 AJAX 等异步客户端-服务器通信技术的情况下不能。否则,您可以使用以下内容:

<form action="<?php echo $_SERVER['PHP_SELF']; ? method=....>"
Run Code Online (Sandbox Code Playgroud)

作为您的表单开始标记,然后将 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
Run Code Online (Sandbox Code Playgroud)

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