javascript - json_encode 无法从 php 数组转换为 js 数组

标签 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:预期表达式,得到 ';' var zutatenArray = ;"

当我使用此代码时:

 <?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>

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

最诚挚的问候

最佳答案

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

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

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

即使 json_encode() 完全失败并返回 bool 值 false,生成的 Javascript 也会看起来像

var zutatenArray = [];

这是完全合法的。

关于javascript - json_encode 无法从 php 数组转换为 js 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253015/

相关文章:

php - 如何最好地处理构造函数中的异常?

php - Laravel dd 输出仅随脚本一起提供

php - 是否有多个 <br/> 标签的一般经验法则?

java - 如何在 Java 中反序列化 JSON 对象数组

javascript - 按升序显示多个 html 文本框值

javascript - 如何使用单个输入框两个值?

javascript - div 类将颜色从颜色名称更改为颜色#code

大型静态网站的 JavaScript TreeView

arrays - 为什么 ng-bind 不适用于数组?

python - SKlearn X 和 Y 的 reshape 警告