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

编程入门 行业动态 更新时间:2024-10-18 16:48:58
本文介绍了会话变量未在javascript代码中更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

delete_define.php具有以下代码段:

delete_define.php has the following code snippet:

<?php session_start(); ?> <form action="delete_now.php" target="upload_target" onsubmit="return my_func_1();"> <input type="submit" name="my_submit" class="my_submit" value="submit"/> <iframe id="upload_target" name="upload_target" src1111="#" style="width:0;height:0;border:0px solid #fff;"></iframe> </form> <script type="text/javascript"> function my_func_1(){ //alert("from within my_func() =" +<?php echo $_SESSION['my_session']; ?>); alert(" my_func_1"); return true; } function my_func_2(){ alert("my_func_2 =" +<?php echo $_SESSION['my_session']; ?>); return true; } </script>

delete_now.php具有:

delete_now.php has:

<?php session_start(); $_SESSION['my_session']=rand(); ?> <script type="text/javascript"> alert("from within delete_now.php = " +<?php echo $_SESSION['my_session']; ?>); window.top.window.my_func_2(); </script>

问题是my_func_2()不能为会话变量提供与delete_now.php中的警报框相同的输出.

The problem is my_func_2() does not give the same output for the session variable as the alert box in delete_now.php gives.

那是为什么?

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

推荐答案

这是因为在delete_define.php加载时,会话var是一个,然后变成另一个,但是在JS中,您存储了以前的值.

That's because when the delete_define.php was loading the Session var was one, then it's become another, but in you JS stored previous value.

您应该将会话var存储到JS var中,然后在JS中的delete_now.php中使用新值将其重置.

You should store session var into JS var, and then in JS in delete_now.php reset it with the fresh value.

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

将类似以下内容的内容添加到第一个php文件的JS中:

Add to first php file's JS something like:

var session_var = '<?php echo $_SESSION['my_session']; ?>';

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

And then in your delete_now.php's JS:

parent.session_var = '<?php echo $_SESSION['my_session']; ?>';

然后更改函数my_func来提醒session_var JS变量.

And change function my_func to alert session_var JS variable.

这样想...

说明:

然后结果页js将是:

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

因此,当您调用它时,$ _ SESSION中的任何内容都会有旧的静态值.

So when you call it, whatever is in the $_SESSION is, there will be old, static value.

总体过程说明:

  • 加载delete_define.php
  • JavaScript var,包含已初始化的实际文件名
  • 来自提交
  • 脚本delete_now.php正在运行
  • 主窗口中的Javascript变量刷新
  • 您调用my_func_2(),它将使用包含新文件名的全局JS var.
  • 更多推荐

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

    本文发布于:2023-11-23 19:59:42,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1622708.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:变量   代码   javascript

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!