将pdo对象转换为javascript数组

将pdo对象转换为javascript数组,javascript,arrays,Javascript,Arrays,我试图将PDO对象转换为javascript数组,但在访问数组中的键时遇到问题 <script> var groups = new Array(); </script> <?php $groups = getGroups($_SESSION['userId']); //turn group o while ($row = $groups->fetch()){ echo "<script> groups.push('" . j

我试图将PDO对象转换为javascript数组,但在访问数组中的键时遇到问题

<script> var groups = new Array(); </script>
<?php $groups = getGroups($_SESSION['userId']);             //turn group o
while ($row = $groups->fetch()){
echo "<script> groups.push('" . json_encode($row) . "'); </script>";
}
?>
但是,当我尝试访问其中一个键时,如下所示:

for(var i = 0; i < groups.length; i++){
    console.log(groups[i].name);
    }
for(变量i=0;i
我在控制台中没有定义


我发现一些帖子似乎表明上述语法应该有效,有什么想法吗?

你确定groups数组中的元素不是字符串(未解析的json)吗?如果是这种情况,您可以对字符串使用JSON.parse,并尝试访问名称。或者,在服务器上生成时,可以在对象周围加引号。

此行:

echo "<script> groups.push('" . json_encode($row) . "'); </script>";
echo“groups.push('.”.json_encode($row)。”);
应改为

echo "<script> groups.push(" . json_encode($row) . "); </script>";
echo“groups.push(.json_encode($row)。”);

因为json_encode确保它们已经是Javascript对象。

您将它们编码为字符串。您需要再次解析它们。什么
console.log(组类型[i])谢谢,我还在想JSON,这就成功了。我添加了var parsedGroup=JSON.parse(groups[I]);然后通过console.log(parsedGroup.name)调用该键;你的建议可能行得通,但如果字符串中有一个“'”,我想它会再次断裂。json_encode()返回一个字符串,该字符串是Javascript对象的Javascript代码。要使用它,你不需要像RyanY那样用引号括起来,只需要使用它。看看我的答案。
echo "<script> groups.push('" . json_encode($row) . "'); </script>";
echo "<script> groups.push(" . json_encode($row) . "); </script>";