我想将 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/