我有5种不同类别的商品。我需要获取类别中每个项目的计数并更新页面上的计数。我正在对PHP函数进行AJAX调用,该函数从MySQL表中获取数据。我可以接近但不能完全开始工作。
AJAX:
$(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:
<?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;
?>
输出:
0:[object Object]
1:[对象]
2:[对象对象]
我希望更多:
“itemCategoryOne”:3
“itemCategoryTwo”:12
“itemCategoryThree”:3
上面[object object]中存储的是什么。
答案 0 :(得分:0)
首先成功回调ajax请求,您需要解析数据。 例如:JSON.parse(数据)。然后你可以在解析的项目上使用每个函数。
答案 1 :(得分:0)
fetchAll
返回结果数组,其中键是列名,值是行的值。所以你应该把它转换成你想要的:
注意:对于PDO中的获取count(*)
,需要使用别名count(*)
。
<?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;
?>