Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing PHP variable into JavaScript [duplicate]

Tags:

javascript

php

I've a PHP session variable, $_SESSION['user'], alive throughout the session. In the head section, I've my JavaScript file included, scripts.js.

How do I pass the session variable into the JavaScript file if I want something like the following.

$.("#btn').click (
     function() {
        alert('<?php echo $_SESSION['user']; ?>');
     }
)

As the <?php ?> isn't recognized in the JavaScript file, the code above doesn't work. So I've to put in the PHP file itself, but how do I keep it in the JavaScript file?

like image 616
ptamzz Avatar asked Mar 15 '11 10:03

ptamzz


2 Answers

In your PHP file you could set your user as a global varibale:

<script type="text/javascript">
    var ptamzzNamespace = {
       sessionUser : '<?php echo $_SESSION['user']; ?>'
    }        
</script>

Include this before including your external JavaScript code.

Then in your JavaScript file you can use it:

$.("#btn').click (
     function() {
        alert(ptamzzNamespace.sessionUser);
     }
)

Additionally: If you're not sure if your session varibale can contain quotes itsself, you can use addslashes() to fix this problem:

<?php echo addslashes($_SESSION['user']); ?> even if this will maybe produce something you don't really want to display (because it produces a string with slashes) it will help that your code will not fail. (Thanks to Artefacto)

Would this be an option for you?

like image 139
Chris Avatar answered Sep 19 '22 18:09

Chris


Set the userID (in PHP) in an input type hidden in your file. In your JavaScript code you can read the hidden input types value.

like image 35
sushil bharwani Avatar answered Sep 20 '22 18:09

sushil bharwani