1

为什么 Chrome 控制台仍然给我一个Uncaught TypeError: Cannot read property 'Users' of undefined但脚本工作正常?

我正在使用 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 不存在于同一领域。

4

1 回答 1

0

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

IE:

    var users
    if (dbArray[index]['Users']) {
       users = dbArray[index]['Users'];
    }
于 2013-10-27T04:36:00.883 回答