将Php阵列传递给外部Javascript文件

时间:2015-01-13 09:22:57

标签: javascript php arrays

我已经看到了一些关于将PHP数组传递给外部JavaScript文件的问题,但我无法理解。我知道如何将PHP数组传递给内部JavaScript文件,但不知道如何将它们传递给外部JavaScript文件。

编码

   <?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]);
      } 

3 个答案:

答案 0 :(得分:5)

使用此代码, JS文件(test.js)

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

PHP文件(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>

答案 1 :(得分:3)

您无法直接在外部js文件中使用php代码,但代码为

    <?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" >

答案 2 :(得分:0)

您无法将数据传递到外部javascript文件,就像对内部传递一样。

但是,解决方案可以是:

<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>

否则,另一种解决方案可能是从外部文件获取带有AJAX请求的数据。