会话变量未在javascript代码中更新

delete_define.php具有以下代码段:

 
function my_func_1(){ //alert("from within my_func() =" +); alert(" my_func_1"); return true; } function my_func_2(){ alert("my_func_2 =" +); return true; }

delete_now.php有:

   alert("from within delete_now.php = " +); window.top.window.my_func_2();  

问题是my_func_2()没有像delete_now.php中的警告框那样为会话变量提供相同的输出。

这是为什么?

 EDIT: CHANGED THE CODE SAID TO BE IN delete_define.php 

那是因为当delete_define.php加载时,Session var是1,那么它就变成了另一个,但是在你JS中存储了以前的值。

您应该将session var存储到JS var中,然后在delete_now.php中的JS中将其重置为新值。

如何从框架和其他情况刷新值

添加到第一个php文件的JS类似于:

 var session_var = ''; 

然后在你的delete_now.php的JS中:

 parent.session_var = ''; 

并更改函数my_func以警告session_var JS变量。

也这样觉得…

说明:

然后结果页面js将是:

 function my_func_2(){ alert("my_func_2 = 13513513513513"); return true; } 

因此,当你调用它时,无论$ _SESSION中是什么,都会有旧的静态值。

整体流程说明:

  1. 加载delete_define.php
  2. Javascript var,包含初始化的实际文件名
  3. 提交
  4. 脚本delete_now.php正在运行
  5. 主窗口中的Javascript var刷新
  6. 你调用my_func_2(),它使用全局JS var,包含新的文件名。

你已经分配了随机数,所以根据你运行页面的顺序会给出警报,如果你从delete_now.php开始,两个连续的警报会是一样的。 首先分配一些静态值,然后检查