0

Possible Duplicate:
Passing PHP variable into JavaScript

I want to obtain a PHP variable, to use it in an if-condition in JavaScript.

I was trying to use it like this:

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

But it's wrong in syntax terms. So, how can I use a PHP variable in JavaScript?

Community
  • 1
  • 1
Vitor Santos
  • 304
  • 1
  • 3
  • 13
  • 2
    var phpLogin = ; You forgot to echo varible. And check if key exists in $_SESSION before echo... – Glavić Nov 26 '11 at 17:27
  • and possible more in http://stackoverflow.com/search?q=[php]+pass+php+variable+to+javascript – Gordon Nov 26 '11 at 17:42

5 Answers5

3

Use json_encode and don't forget echo.

var phpLogin = <?php echo json_encode($_SESSION['login']) ?>;
Artefacto
  • 96,375
  • 17
  • 202
  • 225
2

You forgot the echo.

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

or just

<?=$_SESSION['login']?>
Simone
  • 20,302
  • 14
  • 79
  • 103
2

The problem in your code is that you forgot the echo:

var phpLogin = <?php echo $_SESSION['login'] ?>;
Aurelio De Rosa
  • 21,856
  • 8
  • 48
  • 71
1

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

Tim
  • 1,840
  • 2
  • 15
  • 12
1

It may look like overkill, but for safety reasons you should use json_encode when echo'ing directly to PHP:

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

Or, in its longer form:

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

Or, to also accept empty sessions:

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

This will simply output NULL when there's no login session.

Tom van der Woerdt
  • 29,532
  • 7
  • 72
  • 105