Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access PHP var from external javascript file

I can access a PHP var with Javascript like this:

<?php
    $fruit = "apple";
    $color = "red";
?>

<script type="text/javascript">
    alert("fruit: " + "<?php echo $fruit; ?>"); // or shortcut "<?= $fruit ?>"
</script>

But what if I want to use an external JS file:

<script type="text/javascript" src="externaljs.js"></script>

externaljs.js:

alert("color: " + "<?php echo $color; ?>");
like image 877
FFish Avatar asked May 28 '10 12:05

FFish


People also ask

Can PHP access JavaScript variable?

JavaScript is the client side and PHP is the server side script language. The way to pass a JavaScript variable to PHP is through a request. This type of URL is only visible if we use the GET action, the POST action hides the information in the URL.

Is it possible to pass data from JavaScript to PHP?

Is it possible to pass data from JavaScript to PHP? Yes, but not without sending another HTTP request. Yes, because PHP executes before JavaScript. No, because JavaScript is server-side, and PHP is client-side.


2 Answers

You don't really access it, you insert it into the javascript code when you serve the page.

However if your other javascript isn't from an external source you can do something like:

<?php
    $color = "Red";
?>
<script type="text/javascript">var color = "<?= $color ?>";</script>
<script type="text/javascript" src="file.js"></script>

and then in the file.js use color like so:

alert("color: " + color);
like image 100
Don Avatar answered Oct 17 '22 19:10

Don


You can also access data from php script in Javascript (I'll use jQuery here) like this

Create input hidden field within you php file like this

<input type="hidden" id="myPhpValue" value="<?php echo $myPhpValue ?>" />

in your javascript file:

var myPhpValue = $("#myPhpValue").val();
//From here you can the whaterver you like with you js Value
if(myPhpValue != ''){
//Do something here
}

This will do the job as well :)

like image 16
Atanas Kovachev Avatar answered Oct 17 '22 18:10

Atanas Kovachev