您好我试图将存储在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>
如何将相同参数传递给其他文件?
答案 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)
既然你已经为你的问题增加了一个额外的因素,那就更有趣了。如果需要在使用此变量的函数位于不同文件中时设置变量,则需要确定要传递的变量的范围。有几种选择;我将列出两个:
全球范围。也就是说,变量将因其所在的位置而“知道”其他函数。你要小心这一点,但如果这是你的方法,你可以使用任何给出的答案,例如
<script>
var x = '<?= $_SESSION["user"];>';
</script>
本地范围。现在,您需要在class_functions
中包含一个设置变量的函数。你可能会得到像
<script>
set_user('<?= $_SESSION["user"];>');
</script>
在其他文件中定义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......
});
希望能解决您的问题
注意:这可能是众多可能的解决方案之一