我正在尝试构建一些javascript函数,我需要检查用户是否已登录。当用户登录我的站点时,我在名为is_logged的会话数组中设置了一个变量。我想在javascript中达到那个变量是否可能??? 我尝试了一些方法,但没有像下面那样工作:
var session = "<?php print_r $_SESSION['is_logged']; ?>";
alert(session);
和
var session = '<?php echo json_encode($_SESSION['is_logged']) ?>';
alert(session);
要么显示文字,要么从不警示
答案 0 :(得分:6)
请回复一下:
var session = <?php echo $_SESSION['is_logged']?'true':'false'; ?>;
alert(session);
您需要三元运算符,因为false
被回显为空字符串,因此会导致var session = ;
这是一个JS语法错误。
答案 1 :(得分:2)
如果你想在JavaScript中访问$ _SESSION的所有元素,你可以使用json_encode,
<?php
session_start();
$_SESSION["x"]="y";
?>
<script>
var session = eval('(<?php echo json_encode($_SESSION)?>)');
console.log(session);
//you may access session variable "x" as follows
alert(session.x);
</script>
但请注意,将所有$ _SESSION变量导出到客户端根本不安全。
答案 2 :(得分:0)
在js文件中你无法获得php变量的值或php代码在js文件上不起作用,因为php代码将在.php扩展名文件中运行。 因此,一种方法是将会话值设置为隐藏元素值,并在js文件中获取隐藏元素的值。
在html中:
<input type="hidden" id="sess_var" value="<?php echo $_SESSION['is_logged']; ?>"/>
在你的js中:
var session = document.getElementById('sess_var').value;
alert(session);
答案 3 :(得分:0)
请尝试以下代码:
var session = "<?php echo $_SESSION['is_logged'] ?>";
答案 4 :(得分:0)
你可以做这样的事情
只需将$_SESSION['is_logged']
插入隐藏字段,例如
<input type = "hidden" value = "<?php echo $_SESSION['is_logged']; ?>" id = "is_logged" />
然后你可以像你这样在你的jquery中访问它
var is_logged = jQuery.trim($('#is_logged').val());
//then do validation here
答案 5 :(得分:-4)
var get_session=<?php echo $_SESSION['is_login']
alert(get_session);
?>
## * 试试这个* ##