[英]Cannot get php session variable to set a var in javascript
我的php文件中有一个名为$_SESSION['SESS_USER_TYPE']
的会话变量,该变量设置为2个字符串。 php脚本重定向到HTML文件,我要将php会话变量转换为javascript变量。
我在JavaScript中按如下方式使用它,但在javascript变量中却什么也没得到。
var user_type = <?php echo $_SESSION['SESS_USER_TYPE']; ?>;
这是行不通的。
除了从其他用户收到的输入,我尝试了以下操作:
var user_type = '<?php echo json_encode($_SESSION['SESS_USER_TYPE']) ?>';
Javascript返回上述语法错误。
然后我尝试了
user_type = "<?php echo json_encode($_SESSION['SESS_USER_TYPE']) ?>";
这不会在Javascript中产生错误。 但是,它将以下值返回给user_type:
<?php echo json_encode($_SESSION['SESS_USER_TYPE']) ?>
$_SESSION['SESS_USER_TYPE'] is set to the string 'WO'.
那个会话变量的值到底是什么? 如果是字符串,则说明您生成的Javascript无效并导致语法错误,例如:
<?php
$x = 'hello';
?>
<script type="text/javascript">
var x = <?php echo $x; ?>;
</script>
会给你
var x = hello;
可能会炸毁。
当将PHP数据转储到Javascript代码块中时,尤其是在动态创建JavaScript值时, 始终使用json_encode:
var x = <?php echo json_encode($x) ?>;
这将确保您生成的语法有效的JS。
带有JavaScript片段的文件必须由PHP解析。 最简单的方法是使用.php
扩展名。 PHP变量和语句在非PHP文件中不起作用(除非您配置Web服务器来这样做,但这可能超出此问题的范围)。 要使用会话变量,还必须运行session_start()
。
例如
some-file.php
<?php session_start() ?>
<!DOCTYPE html>
<html>
<!-- snip -->
<script>
var user_type = '<?php echo $_SESSION['SESS_USER_TYPE']; ?>';
</script>
正如其他人所说,还请在您的JS字符串周围加上引号。
php脚本重定向到HTML文件,我要将php会话变量转换为javascript变量。
如何在HTML页面中获取会话变量的值? 您需要为此的PHP页面。 在php页面中,您可以这样
var user_type = "<?php echo $_SESSION['SESS_USER_TYPE']; ?>";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.