将PHP SESSION信息传递给JQuery

时间:2013-05-02 05:59:51

标签: jquery

我正在尝试将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'

3 个答案:

答案 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']) ?>;