将SESSION变量传递给JS

时间:2014-02-14 20:48:06

标签: javascript php html innerhtml

好的,这可能看起来相当微不足道,但它让我头疼,我现在必须有某种心理障碍。

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

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

编辑:解决了。执行此操作的方法最好使用:

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

不需要jQuery或其他代码。这是简单而直接的,只是坚持使用另一篇文章提出的解决方案而感到羞耻。 回答其他一些问题:我已经在文件顶部启动了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>

4 个答案:

答案 0 :(得分:2)

修改

旁注:可能是您的会话名称未显示的原因之一可能是因为您的网页中没有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>

  • N.B。: 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>

答案 1 :(得分:1)

您可以将SESSION变量指定给javascript变量..

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

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

答案 2 :(得分:1)

您可以通过ajax调用会话:

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

   return session;
}

答案 3 :(得分:0)

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