我的第一个问题。通常只是找出自己,但这是让我被打败。
在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]
类型,但我不知道如何检查。
答案 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
自我注意:睡在上面!