我的第一个问题。通常情况下,自己为自己找出答案,但这已使我受挫。

在ajax发送请求之后,我使用以下php代码从数据库中获取所有行和列:

$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],但我不知道如何进行其他检查。

最佳答案

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);
});

08-07 19:18
查看更多