使用javascript for循环,访问php数组变量

时间:2015-06-19 17:23:52

标签: javascript php html arrays for-loop

我似乎无法弄清楚的一个小问题;

所以我有一个php数组,我希望通过javascript使用for循环来访问以指定索引。例如,

<?php 
 $myArray = array("a", "b", "c");
?>

<script type="text/javascript">
for(var i = 0; i < elements.length; i++){
        $('<div class="pops"> Hello '+ THIS IS WHERE I WANT THE PHP VARIABLES +'</div>').appendTo(elements[i]);
</script>

我想使用&#39; i&#39;来访问$ myArray中的变量。在javascript for循环中,因为将有与循环迭代相同数量的变量。

我试图阅读可能的解决方案来解决这个问题,但一直未能弄清楚。 我尝试使用以下代码但没有提出任何内容;

$('<div class="pops"> Hello '+ <?php echo $myArray[i]; ?> +'</div>').appendTo(elements[i]);

由于以下两个原因,我觉得我在这里遇到了麻烦;我的语法可能完全错误。 &#39; i&#39;我用来访问数组索引的变量仍然是一个javascript变量。

我是javascript / php的新手,所以请原谅我。 感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:2)

简单,转换为json并添加到脚本元素。

<?php $myArray = array("a", "b", "c"); ?>

<script type="text/javascript">

// I assume phpArray length equals to elements length

var phpArray = <?php echo json_encode($myArray); ?> ;
for(var i = 0; i < elements.length; i++){
    $('<div class="pops"> Hello '+ phpArray[i] +'</div>').appendTo(elements[i]);

</script>

答案 1 :(得分:0)

我看到有两种方法可以做到这一点:一种是使用JSON,因为@venca说。

另一种方法是使用php循环。

<?
  foreach ($myArray as $elem){
    echo '<div class="pops"> Hello '.$elem.'</div>';
  }
?>

这将为php数组中的每个元素生成一个带有类pop的div。如果你想改为运行一些javascript代码,你应该这样:

<script>
<?
  int i=0;
  foreach ($myArray as $elem){
    echo '$("<div class=\"pops\"> Hello '.$elem.'</div>").appendTo(elements['.i.'])';
    i++;
  }
?>
</script>