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

时间:2013-01-17 18:38:51

标签: php html 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>

-

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

5 个答案:

答案 0 :(得分:4)

您无法在同一页面上执行此操作 - 至少在没有异步客户端 - 服务器通信技术(如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']包含对当前请求页面的引用,因此即使重命名也始终设置为正确的页面。这可以节省您跟踪错误的时间。

答案 1 :(得分:4)

我猜你可以使用<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>

答案 2 :(得分:2)

<?php

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

?>

<!-- your HTML goes here -->

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

这将是我的表格:

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