我正在尝试将PHP Session变量传递给js函数但是失败了。
这是我正在尝试的。期望的最终结果是它根据用户登录的详细信息读取正确的JSON文件。
这甚至可能吗?
var username = <?=$_SESSION[username]?>;
$('#aboutContent').redactor({
imageGetJson: '/users/'+username+'/gallery/gallery.json'
});
}
我也试过了:
imageGetJson: '/users/<?=$_SESSION[username]?>/gallery/gallery.json'
但仍然没有骰子。
更新 - 修正
问题是这个js是在一个外部文件中,而不是在调用session_start的同一个文件中 - 所以我将它移动到文件而不是extrenal,现在一切都很好。使用它并完美地工作(不需要设置var用户名):
imageGetJson: '/users/<?=$_SESSION['username']?>/gallery/gallery.json'
答案 0 :(得分:2)
让我们说用户名是约翰。这条线
var username = <?=$_SESSION[username]?>;
会像这样回应客户:
var username = John;
这显然是无效的Javascript。尝试将用户名字符串括在引号中:
var username = '<?=$_SESSION[username]?>';
答案 1 :(得分:1)
这实际上是不可能的。您无法将服务器端概念引入客户端。
答案 2 :(得分:0)
您没有正确引用该变量。 json_encode()
会处理此事,并对事情进行正确编码。
<?php session_start(); ?>
var username = <?= json_encode($_SESSION['username']) ?>;