在php数组中引用javascript数组

时间:2013-02-26 13:18:52

标签: php javascript

我想将php数组传递给javascript。我已经尝试了几个从这个站点采取的例子,但我的其余代码似乎没有认识到它们。我认为问题在于数组的引号或格式。

首先:定义如下的var functionlist工作正常。

<script type="text/javascript">
    var functionlist = Array('1','2','3','4','5','6','7','8','9','10','11','12');
    //Rest of the code
</script>

第二:定义如下的var functionlist工作正常。

<script type="text/javascript">
    var functionlist=Array("1","2","3","4","5","6","7","8","9","10","11","12");
    //Rest of the code
</script>

但是下面的代码不起作用,尽管回显$ TransfArray会产生与上面相似的东西。

<?php
    for ($i = 0; $i <= 12; $i++) {
        $OriginalArray[$i] = $i;
    }
    $TransfArray= "'" . implode("','", $OriginalArray) . "'";
?>

<script type="text/javascript">
    var functionlist = Array(<? echo $TransfArray; ?>);
    //Rest of the code
</script>

下面的代码也不是

<?php
    for ($i = 0; $i <= 12; $i++) {
        $OriginalArray[$i] = $i;
    }
    $Original_to_json = json_encode($OriginalArray);
?>

<script type="text/javascript">
    var functionlist =  <?php echo $Original_to_json; ?>;
    //Rest of the code
</script>

有人检测到这个问题吗? 事先提前了。

3 个答案:

答案 0 :(得分:2)

使用铸造如下,

<?php
for ($i = 0; $i <= 12; $i++) {
$OriginalArray[]= (String)$i;
}
$Original_to_json=json_encode($OriginalArray);
?>

<script type="text/javascript">
var functionlist =  <?php echo $Original_to_json; ?>;
//Rest of the code
</script>

答案 1 :(得分:0)

用PHP编写JavaScript代码是一种可怕的做法。你不应该这样做。相反,你可以做一些与众不同的事情。

  1. 在PHP中,您通过将数组转换为JSON对象来生成JSON文档。使用json_encode函数。将文件命名为“json.php”(尽管命名为data.json可能是一种更好的做法,但您必须执行更多步骤。)
  2. 现在,您可以在HTML文档中包含该文件 <script src="json.php"></script>或者您可以使用AJAX动态加载它。
  3. JSON对象将具有JavaScript数组。

答案 2 :(得分:-1)

试试这个:

<script type="text/javascript">
var functionlist =  <?php echo json_encode($OriginalArray); ?>;
//Rest of the code
</script>

享受;)