4

I've seen some of the questions about the passing PHP arrays to an external JavaScript file, but I can't understand it. I know how to pass PHP arrays to internal JavaScript files but not how to pass them to external JavaScript files.

Coding

   <?php 
      $a = array("Apple","Orange","Grape");
   ?> 

  <script type="text/javascript">
      var jArray= <?php echo json_encode($a); ?>;
      for(var i=0;i<3;i++){
          alert(jArray[i]);
      } 
2
  • Use ajax to get variables from PHP Commented Jan 13, 2015 at 9:29
  • Not possible to use javascript? Commented Jan 13, 2015 at 9:31

3 Answers 3

5

use this code, JS File (test.js)

for(var i=0;i<jArray.length;i++){
alert(jArray[i]);
}

PHP File (test.php)

<?php 
      $a = array("Apple","Orange","Grape");
?>
<script type="text/javascript">var jArray =<?php echo json_encode($a); ?>;</script>
<script type="text/javascript" src="test.js"></script>
Sign up to request clarification or add additional context in comments.

Comments

4

You cant use php code directly in your external js file, the given code is,

    <?php 
          $a = array("Apple","Orange","Grape");
    ?> 

  <script type="text/javascript">
      var jArray= <?php echo json_encode($a); ?>;
      for(var i=0;i<3;i++){
          alert(jArray[i]);
      } 
  </script>

I think you can change the code as, 

   //Declaring the array in php 
   <?php 
      $a = array("Apple","Orange","Grape");
   ?> 

  //Assigning the json encoded format to javascript
  <script type="text/javascript">
      var jArray= <?php echo json_encode($a); ?>;  
  </script>

  //You can use the jArray in the external js file 
  <script type="text/javascript" src="externaljsfile.js" >

Comments

0

You can't pass datas to external javascript file like you do to internals.

But, a solution can be :

<script type='text/javascript'>
    // here you retrieve datas from PHP and use them as global from your external
    var myArray = <?php echo json_encode($a); ?>;
</script>
<script type='text/javascript' src='externalJavascript.js'></script>

Else, a different solution could be getting datas with an AJAX request from your external file.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.