使用 PHP 输出的 Javascript 数组时出现未定义错误


Undefined error when using Javascript array outputted by PHP

为什么Chrome控制台仍然给我一个未捕获的类型错误:无法读取未定义的属性"用户",但脚本工作正常?

我正在使用PHP将值生成到内联到页面的javascript数组中:

<script type="text/javascript">
dbArray = [
<?php
if (!$connect) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("myMysqlTable", $connect);
$result = mysql_query("SELECT * FROM nhoods");
while($row = mysql_fetch_array($result)) : 
?>
{ "Name":"<?php echo $row['Name'] ?>", "Users":<?php echo $row['Users'] ?> },
<?php endwhile; mysql_close($connect); ?>
];
</script>

下面是一个输出示例:

var dbArray = [
    { "Name":"Outer Richmond", "Users":5 },
    { "Name":"Central Richmond", "Users":3 },
    { "Name":"Inner Richmond", "Users":12 },
    { "Name":"USF NoPa", "Users":2 }
    ];

在一个单独的.js文件中,我有以下示例:

function someFunction(index) { 
    var usersfound = dbArray[index]['Users'];
        console.log(usersfound);
};
someFunction(2);

用户返回完全正常并且有效,但它仍然会引发错误。

我知道 php 加载服务器端,但为什么我的 javascript 文件似乎与内联页面 javascript 不存在于同一个领域。

找出原因,发生错误是因为 PHP 行输出不完整,因此我的脚本在尝试从列表中提取不存在的内容时都会出错。 脚本现在签出。我可能会在引用周围放置一个条件,以确保该值首先存在。

即:

    var users
    if (dbArray[index]['Users']) {
       users = dbArray[index]['Users'];
    }