我的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值时,ALWAYS使用json_encode:
var x = <?php echo json_encode($x) ?>;
这将保证您生成语法有效的JS。
包含该JavaScript片段的文件必须由PHP解析。最简单的方法是使用.php
扩展。PHP变量和语句在非PHP文件中不起作用(除非您将Web服务器配置为这样做,但这可能超出了这个问题的范围)。要使用会话变量,还必须运行session_start()
。
例如
一些文件.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']; ?>";