2017-08-03 2 views
-3

私はPHPを使いません。ボタンをクリックすると、インデックスページにボタンがあり、自分のコンテンツを含むDIVを表示するようにページ2がトリガーされます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回リダイレクトされるので、ちょっと...効率的でクライアントフレンドリーではありません。

あなたの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

こんにちはmartin、私はあなたのソリューションを試していますが、私は私のインデックスページにボタンをクリックした後に残っているように、そこにアーカイブする方法はありますか? – Kenneth

+0

JavaScript経由でPOSTリクエストを行うことは可能です。これはあなたを助けることができます[リンク](https://stackoverflow.com/questions/9713058/send-post-data-using-xmlhttprequest)しかし、あなたが最初のページに残って、2番目のページに乗った後よりも、 divは表示されませんでした。あなたには2つの選択肢があります。ボタンをクリックすると、セッションを作成することも、クライアント側のクッキーを作成することもできます。ブラウザにクッキーがある場合は、サーバーにデータを送信し、サーバーは以前にボタンをクリックしたことを検出し、divを表示します。 –

関連する問題