将数组从PHP传递给Javascript

时间:2015-04-09 18:41:19

标签: javascript php mysqli

我正在尝试传递一个PHP数组,然后在JavaScript中使用该数组。

我正在使用的PHP代码如下:

<?php

$link = mysqli_connect("localhost", "root", "password", "database");

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT * FROM Employees";

    if ($result = mysqli_query($link, $query)) {

        /* fetch associative array */
        while ($row = mysqli_fetch_assoc($result)) {

            $data[] = $row;
        }
        print_r($row);
        /* free result set */
        mysqli_free_result($result);
    }
    /* close connection */
    mysqli_close($link);

//convert the PHP array into JSON format, so it works with javascript
$json_array = json_encode($data);
?>

JavaScript的:

<script> 
    var array = <?php echo $data; ?>; 
    console.log(array); 
</script>

PHP中的data array似乎没有传递给Javascript var array。在firebug上查看控制台时,会显示以下错误消息:

  

注意 - 数组到字符串的转换。

我真的很感谢为什么会出现这种错误。

2 个答案:

答案 0 :(得分:2)

也许是因为你回应了数组而不是json编码的字符串。

使用此

<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>

答案 1 :(得分:0)

我认为应该是:

<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>

您在$ data中使用了json_encode,但您并未在代码中使用该变量。可能是吗?