2011-11-26 122 views
0

Possible Duplicate:
Passing PHP variable into JavaScript如何在JavaScript中使用PHP变量?

我想获得一个PHP变量,以便在JavaScript中使用它的if条件。

我试图用这样的:

var phpLogin = <?php $_SESSION['login'] ?>; 

但它错在语法方面。那么,我如何在JavaScript中使用PHP变量呢?

+2

变种phpLogin = ;你忘记了回声变化。并检查是否存在的关键在$ _SESSION回声...... –

+0

和可能之前更http://stackoverflow.com/search?q=[php]+pass+php+variable+to+javascript – Gordon

回答

3

使用json_encode,不要忘记echo

var phpLogin = <?php echo json_encode($_SESSION['login']) ?>; 
+0

在PHP中没有分号码? – Tim

+0

@Tim在这种情况下没有必要。 – Artefacto

+0

OP也没有表明返回的数据被希望是JSON格式 – Tim

2

您忘记了echo

<?php echo $_SESSION['login']; ?> 

或只是

<?=$_SESSION['login']?> 
+0

在第二个示例中没有半结肠终止PHP代码 – Tim

+1

避免使用短标签。 – dlondero

2

在你的代码的问题是,你忘了echo

var phpLogin = <?php echo $_SESSION['login'] ?>; 
1

尝试: var phpLogin = "<?php =$_SESSION['login']; ?>";

+0

我试过了,但不幸的是,它将它作为字符串返回。 “<?PHP = $ _ SESSION [ '登录'];?>”: 像'',而不是一个PHP变量。 –

1

它可能看起来像矫枉过正,但出于安全原因,您应该使用json_encode直接echo'ing到PHP:

var phpLogin = <?=json_encode($_SESSION['login'])?>; 

或者在其较长的形式:

var phpLogin = <?php echo json_encode($_SESSION['login']); ?>; 

或者,也接受空会话:

var phpLogin = <?php echo @json_encode($_SESSION['login']); ?>; 

这会简单输出NULL时,有没有登录会话。