したがって、私のPHP Webisteは、次のようなDHTML出力を生成します。
<div class="toggle-ctrl" onclick="toggleMenu();">
click me to toggle menu
</div>
<div id="site-menu">
<ul>
<li>opt 1</li>
<li>opt 2</li>
</ul>
</div>
<p><a href="#">Link to Myself</a></p>
そしてもちろん、クリックすると、最初のdivはJavaScriptを呼び出し、JavaScriptの表示を切り替えます。site-menu
function toggleMenu() {
var navigation_pane = document.getElementById('site-menu').style;
if ( navigation_pane.display == 'none' )
navigation_pane.display = 'block';
else
navigation_pane.display = 'none';
}
これはすべて正常に機能します。今気になっているリンクをクリックしています。それをクリックすると(もちろん)新しいhttpリクエストが作成され、私のPHPエンジンはページを再生成します。
この問題は、の可視性がである場合に発生しsite-menu
ます'none'
。PHPエンジンはメニューが非表示になっていることを認識しないため、同じhtmlを再度生成し、ブラウザーはメニューを驚いたユーザーの前に戻します。
site-menu
したがって、問題は、ページを再生成する前に、PHPに可視性のステータスをどのように通知するか(またはPHPがどのようにチェックできるか)です。