如何访问存储在javascript对象

时间:2016-11-18 21:51:11

标签: javascript json

我的第一个问题。通常只是找出自己,但这是让我被打败。

在ajax发送请求之后,我使用这个php代码从我的db获取所有行和列:

$sql = "SELECT * FROM categories";
$result=$conn->query($sql);  
$arr = $result->fetch_all(MYSQLI_ASSOC);


print_r($arr)

给了我这个输出:

Array ( [0] => Array ( [cat_id] => 1 [cat_name] => Friends [checkbox] => checked ) [1] => Array ( [cat_id] => 2 [cat_name] => Favourites [checkbox] => checked ) [2] => Array ( [cat_id] => 3 [cat_name] => Drink [checkbox] => checked ) [3] => Array ( [cat_id] => 4 [cat_name] => Food [checkbox] => checked )
<br>

我使用以下编码:

echo json_encode($result);

然后我使用以下方法将数据转换为js变量:

result = Request.responseText;
var categories = JSON && JSON.parse(result) || $.parseJSON(result);

如何访问存储在类别中的数据行?我只能假设JSON有效,因为类别现在是[Object object]类型,但我不知道如何检查。

2 个答案:

答案 0 :(得分:1)

categories应该是一个数组。要测试这个,请执行

console.log(categories.length);

这应该打印数组的大小(行数)。如果返回预期结果,请使用简单的for循环迭代行:

for (var i = 0, c = categories.length; i < c; ++i) {
    console.log(categories[i].cat_name);
}

或者,使用带有回调函数的Array.forEach

categories.forEach(function(category) {
    console.log(category.cat_id + ' = ' + category.cat_name);
});

答案 1 :(得分:0)

我今天早上醒来并在花了几个小时看这一天之后的15分钟内解决了这个问题。

echo json_encode($result); //wrong variable

应该是:

echo json.encode($arr); // correct variable 

自我注意:睡在上面!