1

我在javascript中有以下代码
我将一个php数组存储在下面的javascript数组中

<script type="text/javascript">

    var name=new Array();
    <?php
        for($i=0;$i<count($ids); $i++)
            {
                echo "name[$i]='".$name[$i]."';";
            }
    ?>

</script>

当我警告名称 [1] 时,在 Firefox 中我能够看到名称 [1] 的值,但是当我在 chrome 中运行代码时,我在警告框中未定义。

我该如何解决这个问题。我必须改变存储数组的方式还是必须做其他事情。

4

1 回答 1

1

因为您在声明变量时犯了大罪:

  • 这是一个全球性的,这是不好的做法。
  • 它的名字是name,这是chrome中的保留关键字,只需打开控制台并输入for (n in window){if (n === 'name'){console.log(true)}},它就会记录为true
  • 不使用new Array();,使用[]

在 php 前面:要么始终使用双引号,要么使用单引号(但这只是我个人的偏好):

echo "name[$i]='{$name[$i]}';";
echo 'name['.$i.']="'.$name[$i].'";';

就像你放置卷曲的方式一样,虽然...... :-P

于 2012-08-07T11:12:59.880 回答