2017-08-03 70 views
-3

我是PHP新手,我想在我的索引頁上有一個按鈕,點擊按鈕時,它會觸發第2頁以顯示帶有我自己內容的DIV但是我將保留在索引頁面中而不重定向到第2頁,並且第2頁上的DIV在未單擊按鈕時隱藏。索引頁按鈕觸發在另一頁上顯示div

有什麼辦法可以實現這個目標嗎?

+0

AJAX和JavaScript。出發並征服! – ceejayoz

+0

也許WebSockets?這使您可以將消息從服​​務器發送到客戶端。我真的不知道,你的問題不是很清楚。 –

+1

請使用一些代碼參考更具描述性。 – Ali

回答

0

如果你真的站在後面你的壞主意,只是去:

if(isset($_POST['submit'])) { 
echo "<div>My hidden content</div>" 
} 

這將是第二頁上^

<form action="page2.php" method="post"> 
<button name="submit">Submit</button> 
</form> 

這將是你的索引頁^

上正如前面提到的,最好使用JavaScript來做到這一點。在不刷新頁面的情況下調用發佈請求。或者,如果你想在客戶端和服務器之間建立連接,使用node.js(服務器端JavaScript)

好吧,如果你想在點擊按鈕後繼續留在第一頁,並且你不會使用任何JavaScript,你也可以這樣做。但它會被重定向2次,所以它有點...不高效和客戶端友好。

你的第二頁:

if(isset($_POST['submit'])) { 
setcookie("CLICKED",'ThisValueDoesntMatter',time()+31556926 ,'/'); 
header("HTTP/1.1 301 Moved Permanently"); 
header('Location: ' . $_SERVER['HTTP_REFERER']); 
} 
if(isset($_COOKIE['CLICKED'])) { 
echo "<div>My hidden content</div>" 
} 

這也是不安全的,如果該按鈕被認爲是與一些認證頁面上。 索引頁保持不變。 注意:Cookie的使用期限爲1年。

+0

嗨馬丁,我試過你的解決方案正在工作,但我喜歡留在我的索引頁面點擊按鈕後,有什麼辦法來存檔嗎? – Kenneth

+0

可以通過JavaScript進行POST請求。這可以幫助你[鏈接](https://stackoverflow.com/questions/9713058/send-post-data-using-xmlhttprequest)但是,當你留在你的第一頁上,而不是在進入第二頁之後, div不會出現。你有2個選擇。通過點擊按鈕,您可以創建會話,或者您可以創建客戶端cookie。如果瀏覽器中存在cookie,它會將數據發送到服務器,服務器會發現您已經點擊了按鈕並顯示div。 –