json_encode无法从php数组运行到js数组

时间:2015-07-06 18:26:03

标签: javascript php arrays json

我想将php数组转换为javascript数组。

当我尝试这段代码时:

 <?php
    //db data
    $verbindung = new mysqli($host_name, $user_name , $password, $database);

    if ($mysqli->error) {
        die('Verbindung schlug fehl:');
    }
    $sql= "SELECT Name FROM Zutaten;";
    $result = mysqli_query($verbindung, $sql);
    $zutatName = array();

    while($row = $result->fetch_array(MYSQLI_ASSOC)){
        $zutatName[] = $row['Name'];
    }    
    print_r(array_values($zutatName));

    ?>
    <script>
    var zutatenArray = [<?php echo json_encode($zutatName); ?>];
    </script>

我收到以下错误消息:“SyntaxError:expected expression,got';' var zutatenArray =;“

当我使用此代码时:

function trim_value(&$value)
{
    $value = trim($value);    // this removes whitespace and related characters from the beginning and end of the string
}
array_filter($_POST, 'trim_value');

然后有一个空的javascript数组。 我错过了什么?

最好的关注

1 个答案:

答案 0 :(得分:1)

你的数组大括号是不必要的:

var zutatenArray = [<?php echo json_encode($zutatName); ?>];
                   ^--------------------------------------^

因为json_encode()已经添加了它们。鉴于您的错误消息显示zutatenArray = ;,您发布的代码不会产生此错误。

即使json_encode()完全失败并返回布尔值false,生成的Javascript也会显示为

var zutatenArray = [];

这是完全合法的。