2013-01-17 1004 views
3

表单提交后,我的页面被重定向到PHP并显示回显。如何在不重定向到PHP页面的情况下显示回显?所以echo应该显示在html页面(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!'; 
} 
?> 
+0

是在同一个脚本(form.php)中处理它的形式和代码吗? – Mattt

+0

你是什么意思的形式已提交的HTML页面上的某处(可能在一个div或输入字段)' – Peter

+0

不完全确定,如果我明白你的话,但它听起来像你试图显示的东西没有页面刷新你可以使用AJAX –

回答

4

我想你可以使用和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> 
+0

这很好,谢谢。 – lonewulf

+0

我很高兴它帮助:) – Bogdan

2
<?php 

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

?> 

<!-- your HTML goes here --> 

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

+0

-1我没有看到差异,除了没有E_NOTICE警告。 -1没有正确的解释 – Peter

+0

@PeterSzymkowski对我来说,这看起来像OP所要求的。 – Kermit

+0

它将HTML和PHP结合在同一页面上,这是我从OP中了解到的。 –

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

我upvoted深度的信息。我强烈建议不要让代码绘制两次表单。相反,你总是显示表单,并有if子句在表单标签中添加“value =”属性。 –

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

+0

再次阅读问题,@zefs已经有这个,并希望其他行为。 – danopz

+1

尽管此代码可能会回答问题,但提供 有关_why_和/或_how_的附加上下文,它将回答 该问题将显着提高其长期值 的值。请[编辑]你的答案,添加一些解释。 –

0

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

如果我在一个名为index.php的

文件的工作,这将是我的表单:

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