Я пытаюсь распечатать все содержимое моих данных .Я попытался проверить, содержит ли моя переменная console.log(data.responseText);
Я получил это:
string(3) "all"
[{"ID":"1","Nome":"Sony KD55XF8577","Prezzo":"999.99","Descrizione":"TV QLED 55","QTA":"3","Categoria":"1","Immagine":"KD55XF8577.jpg"},{"ID":"2","Nome":"Samsung QE49Q6FNATXZT","Prezzo":"699.99","Descrizione":"TV QLED 49'' ","QTA":"4","Categoria":"1","Immagine":"QE49Q6FNATXZT.jpg"},{"ID":"3","Nome":"LG 55SK8000PLB","Prezzo":"499.99","Descrizione":"SMART TV LED 55","QTA":"3","Categoria":"1","Immagine":"55SK8000PLB.jpg"}]
, которые являются всеми данными в моей базе данных, так что это правильно.Проблема в том, что когда я пытаюсь сделать JSON.parse(data.responseText).forEach(
, я получаю JSON Parse error: неожиданный идентификатор "string" , даже если вы видите данные в правильном формате.
function printData(data){
$("prodotti").innerHTML="";
JSON.parse(data.responseText).forEach(
function(element){
$("prodotti").innerHTML += "<div class=prodotto id=prodotto"+element["ID"]+">" +
"<img src=../prodotti/"+element["Immagine"]+">" +
"<div class=nomeprod>"+element["Nome"]+"</div>" +
"<div class=prezprod>"+element["Prezzo"]+"€</div>" +
"<div class=descprod>"+((element["Descrizione"].length > 47)? element["Descrizione"].substring(0, 47)+"...":element["Descrizione"])+"</div>" +
"<div class=quanprod>rimasti: "+element["QTA"]+"</div></div>";
}
);
}
РЕДАКТИРОВАТЬ: массив, который я получаю, находится в этой строке формата (3) [{obj1}, {obj2}, {obj3}], так что это правильный формат для этой функции JSON, верно?
EDIT2: это то, как я генерирую JSON.Прежде всего, я использовал этот метод:
function request(t){
type = t;
new Ajax.Request("../inventario/get_prodotti.php",
{
parameters: {
type: t
},
dataType: "json",
onSuccess: printData
});
}
Вот функция php: ($ categoryoria = "all")
function getProdotti($categoria){
$db = databaseConnection();
$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "SELECT * FROM Prodotto";
$rows = $db -> query($query);
return $rows -> fetchAll(PDO::FETCH_ASSOC);
}
getprodotti.php
<?php
header('Content-Type: application/json');
include("../common/stock_functions.php");
$type = $_POST['type'];
var_dump($type);
$rows = getProdotti($type);
?>
<?= json_encode($rows); ?>