将值从php传递给javascript

时间:2014-03-23 13:52:04

标签: javascript php html

您好我试图将存储在php中的值传递给javascript代码。

我尝试传递$_SESSION[user]

中的值

如果我的标题中有这个脚本:

<script>

var user = ? //How to pass the value?

</script>

在我的按钮中,我做了类似的事情:

onclick="foo('<?php session_start(); echo $_SESSION[user];?>')

但是如何在没有用户点击的情况下传递它?

感谢您的帮助

修改

我的JS函数位于其他文件中,我通过标题中的代码引用它们:

<script src="class_functions"></script>

如何将相同参数传递给其他文件?

5 个答案:

答案 0 :(得分:5)

只需像对待任何内容一样回显PHP值:

<script>
    var user = '<?php echo $_SESSION[user]; ?>';
</script>

JavaScript就像HTML一样是客户端代码。

答案 1 :(得分:4)

如果你是PHP脚本正在渲染页面,我会采用脚本标记方法。

<head>
   <script type="text/javascript">
       var user = '<?php echo $_SESSION["user"]; ?>';
   </script>
</head>
<body>
</body>

答案 2 :(得分:2)

既然你已经为你的问题增加了一个额外的因素,那就更有趣了。如果需要在使用此变量的函数位于不同文件中时设置变量,则需要确定要传递的变量的范围。有几种选择;我将列出两个:

  1. 全球范围。也就是说,变量将因其所在的位置而“知道”其他函数。你要小心这一点,但如果这是你的方法,你可以使用任何给出的答案,例如

    <script>
    var x = '<?= $_SESSION["user"];>';
    </script>
    
  2. 本地范围。现在,您需要在class_functions中包含一个设置变量的函数。你可能会得到像

    这样的东西
    <script>
      set_user('<?= $_SESSION["user"];>');
    </script>
    
  3. 在其他文件中定义set_user()函数的位置,并确保该变量可用于具有正确范围的其他函数。

    我更喜欢使用方法2 - 它更清洁。

答案 3 :(得分:1)

我认为这更好:

<script>
    var user = '<?php echo htmlentities($_SESSION["user"]); ?>';
</script>

因为如果有引号$ _SESSION ['user'],您将收到错误消息。 例如,如果你有:

$_SESSION['user'] = "something with 'quotes'";

js会这样:

var user = 'something with 'quotes'';

哪个不对。

答案 4 :(得分:0)

如果您希望Jquery自动发生,可以使用它。

只需在代码中使用以下代码

$(document).ready(function()
{
    var user= <? echo $_SESSION['user']?>;
    //Code Goes here......

});

希望能解决您的问题

注意:这可能是众多可能的解决方案之一