繁体   English   中英

将SESSION变量传递给JS

[英]Passing a SESSION variable to JS

好的,这看似微不足道,但这让我头疼,现在我必须有某种精神障碍。

我想将SESSION变量传递给JS,然后最终传递给另一页...这只是我现在担心的第一部分,因为我什至无法获得良好的“警报”。 该变量为空白...即使用户名显示在HTML span标记中,“ xxxxx的页面上显示____”。

因此,这是我页面上的适用代码。 编辑-对于那些问我为什么要这样做的人,我在( this )帖子上阅读了...

编辑:解决。 最好使用以下方法完成此操作:

var player = "<?php echo $_SESSION['username']; ?>";

不需要jQuery或其他代码。 这是简单而直接的,仅坚持使用另一篇文章中提出的一种解决方案就可耻了。 为了回答其他一些问题:我确实已经在文件顶部添加了start session()。 该脚本位于HTML / PHP代码之后。 *** ... HTML内容...

You are <span id='username'><?PHP echo $_SESSION['username']?></span></div>

...更多HTML ...

<script>
    function rollpublic()
    {
... some declarations...
        var player = document.getElementById("username").innerHTML;
        alert (player);
more JS }
</script>

编辑

旁注:一个可能导致您的会话名称不出现的原因可能是因为session_start(); 在您的页面中不存在,在您的已发布代码中也没有提及。

没有看到完整的代码,很难查明它。

但是,这是我使用以下代码执行的成功测试:(第1页和第2页)

第1页:

<?php
session_start();
$_SESSION['username'] = "USERNAME";
?>

<a href="sessions_check.php">Check session name</a>

第2页: (sessions_check.php),它将回显并提醒会话名称。

<?php
session_start();
?>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script>
    $(document).ready(function(){
var player = "<?php echo $_SESSION['username']; ?>";

alert (player);

    });
</script>

You are <span id='username'><?PHP echo $_SESSION['username']?></span></div>

出现在HTML源代码中: var player = "USERNAME";

并且You are <span id='username'>USERNAME</span></div>

  • 注意: session_start(); 必须在所有使用会话的页面中才能正常运行。

(原始答案)这对我有用:

<?php
session_start();
$_SESSION['username'] = "USERNAME";
?>

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
    $(document).ready(function(){
var player = "<?php echo $_SESSION['username']; ?>";

alert (player);
    });
</script>

You are <span id='username'><?PHP echo $_SESSION['username']?></span></div>

您可以将SESSION变量分配给javascrip变量。

<script>
function myFunction(){
    var a = <?php echo $_SESSION['var'] ?>;
    alert(a);
}
</script>

如果您需要更多帮助,请告诉我。

您可以通过ajax调用会话:

function getSession(){
   var session;
   $.get('someUrlThatReturnSession', function(sessionData) { 
      session = sessionData;
   });

   return session;
}

如果您使用的是Angular JS,则可以使用这种方法 (将PHP var提供给隐藏输入的ng-init参数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM