0

我有一个问题,即 SESSION 变量在其定义之前“显示”..

Index.php 是我的网站,里面有一个设计,里面有一个框架。现在,index.php 有这个:

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

在框架内,有一个 insert.php 将数据存储到 user_message_123456。

现在在它被存储之前,它会显示 undefined.. 但是在它被存储之后,它仍然会显示在 undefined,直到你刷新页面..

但是,我想这样做,当您存储会话时,它将显示它,并且您不需要刷新页面(f5)。

我知道这是因为您在加载 index.php 时调用了 $_SESSION 变量,除非您没有运行 insert.php,否则它没有定义,但我想找到另一种方法/方式来执行此操作。

任何想法如何做到这一点?例子?请给我看看!!

4

2 回答 2

0

要在外部框架上显示一些新内容而不重新加载它,您可以使用一些简单的 JavaScript。

将以下脚本添加到您的 insert.php 文件中,在您已经将值写入 $_SESSION 数组的部分中:

<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 来允许两个文档进行通信。但是,很可能您的应用程序流程只需要修改即可使此任务变得不必要。在不需要的时候依赖 Javascript 是不明智的。

于 2010-02-24T21:45:05.023 回答