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


Using javascript for loop, access php array variables

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

所以我有一个 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>

我想使用 javascript for 循环中的"i"访问 $myArray 中的变量,因为与循环迭代的变量数量相同。

我试图阅读解决此问题的可能解决方案,但无法弄清楚。我尝试使用以下代码,但一无所获;

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

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

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

很简单,转换为 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>

我看到两种方法可以做到这一点:一种是@venca所说的使用JSON。

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

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

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

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