2013-01-17 1034 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"> 
相關問題