Passing a PHP Variable in external JS file [duplicate]

Posted on

Passing a PHP Variable in external JS file [duplicate] – Here in this article, we will share some of the most common and frequently asked about PHP problem in programming with detailed answers and code samples. There’s nothing quite so frustrating as being faced with PHP errors and being unable to figure out what is preventing your website from functioning as it should like php and javascript . If you have an existing PHP-based website or application that is experiencing performance issues, let’s get thinking about Passing a PHP Variable in external JS file [duplicate].

I’ve read lots of thread on here but I am still unable to get a variable passed from PHP to an external JS file and wondered if someone could assist?

In my PHP file I have the following;

<script type="text/javascript">
var pass_this_variable = <?php $company['website']; ?>;

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

In the JS file I have the following;

document.write('<IFRAME SRC="$company['website']" WIDTH="300" HEIGHT="400"></IFRAME>');

What I am trying to achieve is an IFRAME be opened and populated with what is contained within $company[‘website’]. I know I can just use IFRAME directly in the PHP file, but this isn’t what I have been tasked with for my homework. When I do use IFRAME directly in the PHP file it works fine, and if I specify a static URL in the JS file such as this also works fine.

Can anyone assist? Thanks


Thanks for the answers so far, however I’m still unable to get it working 🙁

The frame that I have in track.php (or track.js) won’t load the url thats specified in $company['website'], yet if I change it to its working fine. For some reason the $company['website'] value isn’t being passed 🙁

Solution :

if you want your external javascript to be dynamic you can make it a php file and give the correct header, example:

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


// javascript generator
Header("content-type: application/x-javascript");
document.write('<IFRAME SRC="<?php echo $company['website'] ?>" WIDTH="300" HEIGHT="400"></IFRAME>');

PHP file (don’t forget echo and quoting):

<script type="text/javascript">
var pass_this_variable = '<?php echo $company['website']; ?>';

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

JS file (use pass_this_variable instead):

document.write('<IFRAME SRC="'+pass_this_variable+'" WIDTH="300" HEIGHT="400"></IFRAME>');

You should fix this line:
var pass_this_variable = <?php echo $company['website']; ?>;

Adding echo and it should work

JavaScript provides you the functionality of ajax for the purpose of reading the PHP or text files. Why don’t you create the HTML iframe inside a PHP file with your variables parsed and then take back the response and “throw” it inside a div.

The code for your PHP file:

$cmp = $company['website'];
echo '<input type="hidden" id="cmp1" name="cmp1" value="' . $cmp . '" />';

The code for your JavaScript (.js) file to get the PHP file value:

var company = document.getElementById('cmp').value;

Call a PHP file inside the JavaScript source. You can find the tutorial here:

So your code will be like this:

<script type="text/javascript" src="track.php?company=<?php echo $company['website']; ?>"></script>

In the PHP file you can fetch the value through $_GET variable and use it in the iframe. Make sure to sanitize the input.

Leave a Reply

Your email address will not be published. Required fields are marked *