0

SESSION変数が定義される前に「表示」されているという問題が際立っています..

Index.php は私のサイトで、デザインがあり、その中にフレームがあります。今、index.phpはこれを持っています:

<div id='message2' onclick="closeNotice2()" style="display: none">
<? echo $_SESSION["user_message_123456"]; ?>
</div>

フレーム内には、user_message_123456 にデータを格納する insert.php があります。

保存される前は未定義と表示されますが、保存された後は、ページを更新するまで未定義のまま表示されます..

しかし、私はそうしたいのですが、セッションを保存すると表示され、ページを更新する必要はありません(f5)。

index.php をロードしているときに $_SESSION 変数を呼び出し、insert.php を実行していない限り定義されていないため、これが原因であることはわかっていますが、これを行う別の方法/方法を見つけたいと考えています。

これを行う方法はありますか?例?見せてください!!

4

2 に答える 2

0

リロードせずに外枠に新しいコンテンツを表示するには、簡単なJavaScriptを使用できます。

$ _SESSION配列に値を既に書き込んだ部分で、次のスクリプトをinsert.phpファイルに追加します。

<script type="text/javascript">
    var container = parent.document.getElementById('message2');
    container.innerHTML = '<?=$_SESSION["user_message_123456"]?>';
</script>

いくつかのヒント:

  • これにより、の内容が<div id='message2'...変数の値に設定されます。
  • 動作しない場合は、</script>終了タグの前に次の行を追加します。

    alert('Script is working');
    

    次に、insert.phpがロードされたときにメッセージポップアップが表示されるかどうかを確認します。そうでない場合は、スクリプトが実行されていないことを意味します。<head>コードを移動して、コードが内部または終了直前に配置されるようにします</body></html>

お役に立てれば

于 2012-04-09T05:46:34.640 に答える
0

あなたがしたいことをするのは特に実行可能ではないようです。他のページの後にロードされたページは、正確に戻って過去を変更することはできません。

フレームがアプローチの重要な部分であると確信している場合は、クロスフレーム Javascript を使用して 2 つのドキュメントが通信できるようにする必要があります。ただし、アプリケーション フローを単に変更して、このタスクを不要にする必要がある場合もあります。必要のないときに Javascript に依存するのは賢明ではありません。

于 2010-02-24T21:45:05.023 に答える