我的第一个问题。通常情况下,自己为自己找出答案,但这已使我受挫。
在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);
});