每个项目类别的Ajax到PHP返回计数
我有5种不同类别的物品。我需要获得类别中每个项目的计数,并更新页面上的计数。我正在对一个PHP函数进行AJAX调用,该函数从MySQL表中获取数据。我可以接近,但不能完全让它工作 阿贾克斯: PHP:每个项目类别的Ajax到PHP返回计数,php,mysql,ajax,Php,Mysql,Ajax,我有5种不同类别的物品。我需要获得类别中每个项目的计数,并更新页面上的计数。我正在对一个PHP函数进行AJAX调用,该函数从MySQL表中获取数据。我可以接近,但不能完全让它工作 阿贾克斯: PHP: 输出: 0:[对象] 1:[对象] 2:[对象] 我希望更多的是: “itemCategoryOne”:3 “项目类别2”:12 “项目类别树”:3 这就是上面[object object]中存储的内容。在ajax请求的成功回调中,首先需要解析数据。 例如:JSON.parse(数据)。然后,
输出:
0:[对象]1:[对象]
2:[对象] 我希望更多的是: “itemCategoryOne”:3
“项目类别2”:12
“项目类别树”:3
这就是上面[object object]中存储的内容。在ajax请求的成功回调中,首先需要解析数据。
例如:JSON.parse(数据)。然后,您可以对已解析的项使用每个函数。
fetchAll
返回结果数组,其中键是列名,值是行的值。因此,您应该将其转换为您想要的:
注意:对于PDO中的getcount(*)
,需要别名count(*)
据我所知,PHP中的json_编码已经将其转化为一个对象。JSON.parse给了我一个错误“位置1处JSON中的意外标记o”,当您var_dump($results)时,您得到了什么输出;退出代码>?
$(function(){
$.ajax({
url : '/getItemList.php',
type : 'GET',
dataType: 'json',
success : function(data) {
$(data ).each(function( key, value ) {
console.log( key + ": " + value);
});
},
error : function(request,error)
{
console.log(request);
}
});
})
<?php
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT itemType, count(*) from `Items` group by itemType");
$stmt->execute();
$results=$stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($results);
}
catch(PDOException $e)
{
$errorMessage = "Sorry, something webt wrong";
}
$conn = null;
?>
<?php
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT itemType, count(*) as count from `Items` group by itemType");
$stmt->execute();
$results=$stmt->fetchAll(PDO::FETCH_ASSOC);
$response_array = array();
foreach($results as $result) {
$response_array[$result['itemType']] = $result['count'];
}
echo json_encode($response_array);
}
catch(PDOException $e)
{
$errorMessage = "Sorry, something webt wrong";
}
$conn = null;
?>